如何使用for循环中已输入的数据生成平均值?

时间:2019-04-28 06:12:44

标签: for-loop sum average

在将所有数据输入到for循环中之后,我不知道如何计算数据总和以返回平均值。我不知道要在“ protein_sum =”后面加上什么来使这项工作有效。这是单人作业。有解决方案吗?

我尝试使用sum()函数,但返回的错误'int'对象不是可迭代的,我非常困惑。这是在python 3上。

for number_of_patients in range(1, number_of_patients + 1)
    protein = int(input("Enter protein(g) requirement for patient: ")

protein_sum = 
avg_protein = protein_sum / number_of_patients
print(avg_protein)

我希望用户输入'n'位患者及其各自的蛋白质需求量,并返回所需蛋白质的平均值。

例如。如果有3位患者,并且用户输入了10、20和15作为蛋白质量,我希望程序返回15作为平均值。

2 个答案:

答案 0 :(得分:0)

您可以轻松解决此问题。只需将数字与先前值的总和相加即可。

protein_sum = 0
for number_of_patients in range(1, number_of_patients + 1){
    protein = int(input("Enter protein(g) requirement for patient: ")
    protein_sum += protein
}

avg_protein = protein_sum / number_of_patients
print(avg_protein)

答案 1 :(得分:0)

这取决于用户的输入格式,如果用户在新行中输入了所有蛋白质,则此代码将起作用:

proteins=[] 
number_of_patients=int(input("Enter Number of patients: "))
for number_of_patients in range(1, number_of_patients + 1):
    protein=int( input("Enter protein(g) requirement for patient: ") )
    proteins.append(protein)
protein_sum = sum(proteins)
avg_protein = protein_sum / number_of_patients
print(avg_protein)

否则,如果用户将所有蛋白质输入到以空格分隔的单行中,那么它将起作用:

number_of_proteins=int(input())
proteins=[int(x) for x in input().split()]
protein_sum=sum(proteins)
avg=protein_sum/number_of_proteins
print(avg)