在对Python数组的输入值求平均值时,如何解析int对象是不可迭代的错误



我正在创建一个程序,该程序为7小时内每小时采集的品脱血液接受用户输入,然后输出averagemaximumminimum。我无法克服"int object is not iterable"错误。我对Python还比较陌生,所以除了迭代中存在某种等价性之外,我不太确定这个错误意味着什么。

inputPints = 0
totalPints = 0
hours = ["#1", "#2", "#3", "#4", "#5", "#6", "#7"]
def averagePints(totalPints, hours):
return totalPints / hours
def maxPints():
return max(inputPints)
def minPints():
return min(inputPints)
def userInput():
for hour in hours:
inputPints = int(input("Enter pints collected for hour {}: ".format(hour)))
userInput()
totalPints = totalPints + inputPints
print("")
print("Average number of pints donated is: ", averagePints(totalPints, 7))
print("Most pints donated is: ", maxPints())
print("Least pints donated is: ", minPints())
print("") 

int是一个不能在循环中迭代的单个值。您希望为inputPints使用一个列表,然后将值附加到该列表中。那么除了maxmin之外,您还可以使用sum。顺便说一下,你还有len(inputPints)可供使用。

inputPints = []
totalPints = 0
hours = ["#1", "#2", "#3", "#4", "#5", "#6", "#7"]
def averagePints(totalPints, hours):
return sum(inputPints) / hours
def maxPints():
return max(inputPints)
def minPints():
return min(inputPints)
def userInput():
for hour in hours:
inputPints.append(int(input("Enter pints collected for hour {}: ".format(hour))))
userInput()
totalPints = sum(inputPints)
print("")
print("Average number of pints donated is: ", averagePints(totalPints, 7))
print("Most pints donated is: ", maxPints())
print("Least pints donated is: ", minPints())
print("") 

最新更新