首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >python中的For和if循环

python中的For和if循环
EN

Stack Overflow用户
提问于 2018-07-25 06:57:55
回答 2查看 32关注 0票数 -1

在几个等级之后,我输入完成,它打印到最低等级,但不是平均值。有人能帮我解决这个问题吗?

代码语言:javascript
复制
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)))
EN

回答 2

Stack Overflow用户

发布于 2018-07-25 07:09:34

请尝试以下操作:

代码语言:javascript
复制
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函数)。

我希望它能有所帮助!

票数 0
EN

Stack Overflow用户

发布于 2018-07-25 07:13:42

下面是经过格式化的代码:

代码语言:javascript
复制
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的大小写。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51508662

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档