在几个等级之后,我输入完成,它打印到最低等级,但不是平均值。有人能帮我解决这个问题吗?
grades = []
print('Enter up to 100 grades')
for i in range(1,100):
number = input("Please Enter Grade/enter 'done' when finish: ")
grades.append(number)
if 'done' in grades:
grades.remove('done')
print('\n')
print(grades)
print('Highest Grade: ',max(grades))
print('Minimum Grade:',min(grades))
print('Average Grade: ',(sum(grades)/len(grades)))
发布于 2018-07-25 07:09:34
请尝试以下操作:
grades = []
print('Enter up to 100 grades')
for i in range(1,100):
number = input("Please Enter Grade/enter 'done' when finish: ")
grades.append(number)
if 'done' in grades:
grades.remove('done')
print('\n')
print(grades)
grades = list(map(int, grades))
print('Highest Grade: ',max(grades))
print('Minimum Grade:',min(grades))
print('Average Grade: ',sum(grades)/len(grades))
你会注意到我对缩进做了一些改动。此外,我添加了一行代码来将字符串列表转换为整数列表。我不确定您收到了什么(如果有)错误消息,但这些更改解决了编译错误(导致缩进)和数据类型错误(对字符串执行sum函数)。
我希望它能有所帮助!
发布于 2018-07-25 07:13:42
下面是经过格式化的代码:
grades = []
print('Enter up to 100 grades')
for i in range(1,100):
number = input("Please Enter Grade/enter 'done' when finish: ")
grades.append(number)
if 'done' in grades:
grades.remove('done')
print('\n')
print(grades)
print('Highest Grade: ',max(grades))
print('Minimum Grade:', min(grades))
print('Average Grade: ',(sum(grades)/len(grades)))
您将成绩存储为字符串,因此sum函数在尝试对grades
中的元素求和时会崩溃。您应该将输入转换为数字,但要注意done
的大小写。
https://stackoverflow.com/questions/51508662
复制相似问题