在Python中检测用户输入中的最低值3.6
问题描述:
我必须根据用户输入计算一组值的平均等级,并在计算平均值之前删除最低等级。除了代码降低最低值外,我拥有一切。我尝试使用min函数,但是当在循环内部打印时,我得到“TypeError:'int'对象不可迭代。”任何想法如何解决这个问题?谢谢!在Python中检测用户输入中的最低值3.6
numuser=eval(input("How many users are there?: "))
numgrade=eval(input("How many grades will there be for each user?: "))
usercount=0
gradecount=0
while usercount <= numuser:
name=input("Please enter the user's first and last name: ")
gradetot=0
while gradecount < numgrade:
gradeval=eval(input("Please enter the grade: "))
gradetot=gradetot+gradeval
gradecount=gradecount+1
low = min(gradeval)
tot = gradetot-low
print("The average grade for", name, "is :", tot/gradecount)
numuser=numuser-1
usercount=usercount+1
gradecount=0
答
我修改了您的应用程序,请参阅下面的内容,并尝试了解需要哪些更改才能满足您的要求。
numuser=eval(input("How many users are there : "))
numgrade=eval(input("How many grades will there be for each user : "))
usercount=0
gradecount=0
gradeval = [] # you need a array to store a range of values
while usercount <= numuser:
name=input("Please enter the user's first and last name : ")
gradetot=0
while gradecount < numgrade:
val=eval(input("Please enter the grade : "))
gradeval.append(val)
gradetot=gradetot+val
gradecount=gradecount+1
low = min(gradeval)# min function need a range of values
tot = gradetot-low
print("The average grade for : ", name, "is : ", tot/gradecount)
numuser=numuser-1
usercount=usercount+1
gradecount=0
不要使用'eval()'!使用'int()'转换为整数。 – Cfreak
至于你的问题。如果你想使用'min()'来获得最低成绩,你需要做一个列表。您正在通过循环将'gradeeval'重置为整数。或者,您可以使用另一个变量,并且每次都设置它低于前一个变量。 – Cfreak
感谢您的回复。如果数字取决于用户的输入,我会如何将它列入清单? (对不起,如果这是一个愚蠢的问题,有史以来第一次编码!) – Hannah