您好,我正在尝试运行一个程序,返回学生的成绩和他们的平均成绩。我还知道我是一个基本的无脑第一年程序员。我可能会很可怕。但是,请尽您所能提供帮助,我们将不胜感激。 谢谢。
错误说在第 49 行。
说“
line 49, in <module>
while ids > STOP:
TypeErrorL unorderable types: str() > int()
XXXX
def assigngrades(scores):
avg = sum(scores)/len(scores)
print(avg)
for val in scores:
if val > avg + 10:
grade = 'A'
elif val > avg + 5:
grade = 'B'
elif val > avg -5:
grade = 'C'
elif val > avg - 10:
grade = 'D'
else:
grade = 'F'
grades.append(grade)
print("in assigngrades, grades: ",grades)
return grades
def printsummary(grades, ave):
print('ID Score Average Grade')
print('===========================================')
print( )
for val in range(len(ids)):
print('val', val)
print(ids,' ',scores, ' ', grades)
return
#main
ids = []
scores = []
grades = []
STOP = 0
ids = input("Enter an ID:")
while ids > STOP:
ids.append(ids)
score = eval(input("Enter a score:"))
scores.append(score)
id = (input("Enter an ID number, 0 to STOP:"))
grades = assigngrades(scores)
print("after while loop")
print("Ids:", ids, "Scores:", scores, "Grades:", grades)
printsummary(grades, avg)
尽管如此,我对问题所在感到困惑。非常感谢您抽出宝贵时间帮助查看此问题。非常感谢你。是的,我知道我很愚蠢。
最佳答案
input()
函数返回一个字符串,因此您应该使用 int()
将其转换为整数,以便将其值与另一个整数进行比较。您还应该将存储用户输入的变量命名为 ids
以外的名称,因为您已经将其定义为列表:
ids = []
scores = []
grades = []
STOP = 0
id = int(input("Enter an ID:"))
while id > STOP:
ids.append(id)
score = eval(input("Enter a score:"))
scores.append(score)
grades = assigngrades(scores)
print("after while loop")
print("Ids:", ids, "Scores:", scores, "Grades:", grades)
printsummary(grades, avg)
关于Python3 - 而 ids > 停止 : TypeError: unorderable types: str()> int(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52547525/