def main(): number=0 total=0 while True: chenji=float(input("【请输入成绩:】")) #**********Program********** flag =input('【继续输入成绩吗?(y/n)】') if flag=='y': return chenji #********** End ********** flag = input('【继续输入成绩吗?(y/n)】') if flag not in ('y', 'n'): print('【只能输入y或n】') else: break if flag=='n': break print('【输入的所有分数的平均分为】%.2f'%(total/number)) if __name__ == '__main__': main()
时间: 2023-07-05 13:24:19 浏览: 66
这是一个计算输入成绩平均分的程序。程序中使用了一个while循环来获取用户的输入,每次输入一个成绩后,会将该成绩加入总分(total)中,并将成绩总数(number)加1。当用户不再输入成绩时,程序会计算平均分并输出。
然而,程序中有一些问题。在while循环中,有一个return语句,这会导致程序在第一次输入成绩后就结束并返回该成绩,而不会继续执行后面的代码。此外,if语句嵌套的位置有些混乱,应该将第二个if语句放在第一个if语句的下面,否则会在用户输入n后无限循环。
下面是修改后的程序:
```python
def main():
number = 0
total = 0
while True:
chenji = float(input("【请输入成绩:】"))
total += chenji
number += 1
flag = input('【继续输入成绩吗?(y/n)】')
if flag not in ('y', 'n'):
print('【只能输入y或n】')
elif flag == 'n':
break
print('【输入的所有分数的平均分为】%.2f' % (total / number))
if __name__ == '__main__':
main()
```
修改后的程序中,将return语句删除,并将total和number的累加放到while循环中,确保每次输入成绩都会被累加。将第二个if语句移动到第一个if语句下面,并去掉多余的缩进。这样程序就可以正常运行并计算出输入成绩的平均分了。
阅读全文