python - 如何使用标记值通过while循环平均用户输入?
问题描述
对于课堂作业,我被要求创建一个程序,该程序使用 while 循环对用户输入的考试成绩进行平均。我想出了一个有效的程序,但是它不符合我的导师要求的具体标准。我需要使用一个while循环来允许用户输入任意数量的考试分数,每行一个数字,直到输入一个标记值。我如何使用 while 循环和标记值 9999 更改此程序以获得相同的结果?
这是我到目前为止所拥有的。
scores=int(input("how many test scores will you enter: "))
total_sum=0
for n in range(scores):
numbers=float(input("Enter exam score : "))
total_sum+=numbers
avg=total_sum/scores
print("average of ", scores, " test scores is :", avg)
输出应该是这样的
Enter exam score. 9999 to quit: 100
Enter exam score. 9999 to quit: 95.5
Enter exam score. 9999 to quit: 90
Enter exam score. 9999 to quit: 9999
These 3 scores average to : 95.16666667
解决方案
认为最好的方法是将分数存储在一个列表中,然后在用户输入标记值后计算它们的平均值:
SENTINEL = float(9999)
scores = []
while True:
number = float(input("Enter exam score (9999 to quit): "))
if number == SENTINEL:
break
scores.append(number)
if not scores:
print("You didn't enter any scores.")
else:
avg = sum(scores)/len(scores)
print("average of ", len(scores), " test scores is :", avg)
推荐阅读
- sql - 求总后的平均值
- laravel - 无法从数据库中获取原始降价值
- php - 如何将自定义 php 插入特定的 html 代码(acf 字段/wordpress)?
- python - 揭示缺失值的数据框
- amazon-web-services - 函数内部或外部的s3接口初始化
- c++ - 如何在 QStyledItemDelegate 中设置 QStyleOptionProgressBar 的方向
- java - 如何使用 Release.apk 进行调试?
- javascript - 如何在 JavaScript 中将父级的值放入其子级函数中?
- android - 安装后flutter_vpn示例应用程序崩溃
- c++ - 无法从 wchar_t 构造 wstring