def makelist(start, stop, inc): #тело функции которая добавляет значения
value = start
result = []
while value <= stop:
result.append(round(value, 1))
value = value + inc
return result
# Ввод исходных данных (пока 3 слоя)
IGE1=float(input("Введите мощность ИГЭ1, м: " ))
#nazv_IGE1=input("Название слоя1: ")
IGE2=float(input("Введите мощность ИГЭ2, м: " ))
#nazv_IGE2=input("Название слоя2: ")
IGE3=float(input("Введите мощность ИГЭ3, м: " ))
#nazv_IGE3=input("Название слоя3: ")
dh=float(input("Введите шаг разбивки (не менее 0,4х(ширишу), например 0.2), м: " ))
dhIGE1 = makelist((0.0),(IGE1), dh)
dhIGE2 = makelist((IGE1),(IGE1+IGE2), dh)
dhIGE3 = makelist((IGE1+IGE2),(IGE1+IGE2+IGE3), dh)
print ("Список элементарных слоев ИГЭ1",dhIGE1) # выведет значения списков
print ("Список элементарных слоев ИГЭ2",dhIGE2)
print ("Список элементарных слоев ИГЭ3",dhIGE3)
print("___________ сумма:")
print("--Мощность ИГЭ1, м (проверка): ",max(dhIGE1)-min(dhIGE1))
print("--Мощность ИГЭ2, м (проверка): ",max(dhIGE2)-min(dhIGE2))
print("--Мощность ИГЭ3, м (проверка): ",max(dhIGE3)-min(dhIGE3))
вот что выдает
"C:\Python 3.5\python.exe" C:/Users/Николай/PycharmProjects/untitled1/py1.py
=====================
Введите мощность ИГЭ1, м: 1
Введите мощность ИГЭ2, м: 2
Введите мощность ИГЭ3, м: 3
Введите шаг разбивки (не менее 0,4х(ширишу), например 0.2), м: 0.2
Список элементарных слоев ИГЭ1 [0.0, 0.2, 0.4, 0.6, 0.8, 1.0]
Список элементарных слоев ИГЭ2 [1.0, 1.2, 1.4, 1.6, 1.8, 2.0, 2.2, 2.4, 2.6, 2.8]
Список элементарных слоев ИГЭ3 [3.0, 3.2, 3.4, 3.6, 3.8, 4.0, 4.2, 4.4, 4.6, 4.8, 5.0, 5.2, 5.4, 5.6, 5.8]
___________ сумма:
--Мощность ИГЭ1, м (проверка): 1.0
--Мощность ИГЭ2, м (проверка): 1.7999999999999998
--Мощность ИГЭ3, м (проверка): 2.8
При проверке мощностей слоев должно совпадать с верхними значениями 1, 2, 3
–Мощность ИГЭ1, м (проверка): 1.0 (верно!!!!)
–Мощность ИГЭ2, м (проверка): 1.7999999999999998 (должно быть 2.0!!!!)
–Мощность ИГЭ3, м (проверка): 2.8 (должно быть 3.0)
Как сделать так, чтобы введенные значения мощностей слоев (в примере 1 м, 2 м, 3 м) совпали со зачениями списков? Где-то теряется инкремент (в моем случае 0,2)
Другими словами. У меня есть слои грунта. Их нужно разделить на n частей. Вывести на экран значения этих частей с постепенным приращением…. Может есть и другой способ.