Я пытаюсь сложить данные от нескольких «пациентов», мне нужно иметь возможность вывести средний необходимый белок, углеводы, жиры и килоджоули для группы пациентов.
Я все еще изучаю python, и я прочитал множество других вопросов, но, похоже, ничего не работает
я получаю сообщение об ошибке в строке 29 с помощью sum_f, однако я думаю, что, вероятно, есть проблемы с sum_p и sum_f
Раньше я получал, что объект int не подлежит подписке, но я думаю, что исправил это
patient_input = int(input("Enter number of patients:"))
a = 1
patient_data=[]
if patient_input > 0:
while a <= patient_input :
a_str = str(a)
print ("Patient " + (a_str))
protein = int(input("Amount of protein (g) required:"))
while protein <= 0:
print ("Please enter a nonnegative number" )
carbohydrates = int(input("Amount of carbohydrates (g) required:"))
while carbohydrates <= 0:
print ("Please enter a nonnegative number" )
fat= int(input("Amount of fat (g) required:"))
while fat <= 0:
print ("Please enter a nonnegative number" )
kilojules = 4.18 * (4*protein + 4*carbohydrates + 9.30*fat)
a_str = [protein, carbohydrates, fat, kilojules]
patient_data.append(a_str)
a = a + 1
print(patient_data)
^ Кажется, все в порядке, я исправлял в нем ошибки за последние пару часов
b = int((patient_input) + 1)
sum_p = sum(int(i)for i in patient_data [0][0:b])
average_p =(int(b))*(sum_p)
sum_c = sum(int(i)for i in patient_data [1][0:b])
average_c = str((b)*(sum_c))
sum_f = sum(int(i)for i in patient_data [2][0:b])
average_f = str((b)*(sum_f))
sum_k = sum(int(i)for i in patient_data [3][0:b])
average_k = str((b)*(sum_k))
print ("Averages:")
print ("Protein (g):" (average_p))
print ("Carbohydrates (g):" (average_c))
print ("Fats (g):" (average_f))
print ("Kilojules (kJ):" (average_k))
когда sum_p складывается, кажется, что добавляется белок, углеводы, жиры и килоджули пациента, когда мне нужно добавить белок пациентов вместе, чтобы я мог разделить на количество пациентов, чтобы получить среднее