Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x python中的For和if循环_Python 3.x_Loops_For Loop_Average - Fatal编程技术网

Python 3.x python中的For和if循环

Python 3.x python中的For和if循环,python-3.x,loops,for-loop,average,Python 3.x,Loops,For Loop,Average,几级之后,我输入“完成”,打印到最低等级,但不是平均等级。有人能帮我修一下吗 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')

几级之后,我输入“完成”,打印到最低等级,但不是平均等级。有人能帮我修一下吗

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)))
请试试这个:

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))
你会注意到我稍微改变了缩进。此外,我还添加了一行代码,将字符串列表转换为整数列表。我不确定您收到了什么(如果有)错误消息,但这些更改解决了编译错误(缩进是原因)和数据类型错误(对字符串执行求和函数)


我希望有帮助

以下是您的代码格式:

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
的情况。

请编辑您的问题,使代码位于代码块中,因为很难按原样阅读。如果需要帮助,请查看用户应该能够为程序输入尽可能多的分数,以计算最高、最低和平均分数。因此,我无法在程序中对列表进行编码。我已经更新了我的注释,为您提供了动态输入的代码。正如Bruno所指出的,您最大的问题是在字符串列表(等级)中使用sum。我尽可能少地修改,以维护您提供的代码,同时使其进入工作状态。