python输入某班考试成绩,该班人数未知,用 -1 作为结束标志,若输入大于 100 分或小于 0 分,则重新输入,然后计算全班的最高分、最低分与平均分。
时间: 2023-09-10 14:05:39 浏览: 160
### 回答1:
好的,这是一个很常见的编程问题,以下是 Python 代码实现:
```python
scores = []
while True:
score = input("请输入考试成绩:")
if score == "-1":
break
score = int(score)
if score < 0 or score > 100:
print("输入不合法,请重新输入!")
continue
scores.append(score)
if len(scores) == 0:
print("没有输入成绩!")
else:
max_score = max(scores)
min_score = min(scores)
avg_score = sum(scores) / len(scores)
print("最高分:", max_score)
print("最低分:", min_score)
print("平均分:", avg_score)
```
希望这个代码能够帮到你!
### 回答2:
可以使用循环结构来实现这个功能。首先初始化最高分和最低分为0。然后定义一个变量total_score来累计所有同学的成绩之和,再定义一个变量count来计算输入的同学人数。
接着进入循环,每次循环开始时先要求输入一个成绩,然后进行判断。如果输入的成绩是-1,则跳出循环;如果成绩不在0到100的范围内,则提示错误并要求重新输入;否则,进行下一步操作。
在这个判断的else分支中,首先将输入的成绩累加到total_score上,然后将count加1。然后判断输入的成绩是否大于最高分,如果是,则将最高分更新为输入的成绩;然后判断输入的成绩是否小于最低分,如果是,则将最低分更新为输入的成绩。
循环结束后,计算平均分,可以通过total_score除以count来得到。
最后,输出最高分、最低分和平均分即可。
以下是代码示例:
```
max_score = 0
min_score = 0
total_score = 0
count = 0
while True:
score = int(input("请输入成绩(输入-1结束):"))
if score == -1:
break
elif score < 0 or score > 100:
print("输入错误,请重新输入!")
continue
total_score += score
count += 1
if score > max_score:
max_score = score
if score < min_score or min_score == 0:
min_score = score
average_score = total_score / count
print("最高分:", max_score)
print("最低分:", min_score)
print("平均分:", average_score)
```
使用这段代码,可以依次输入每个同学的成绩,输入-1时即可结束输入,然后程序会计算并输出全班的最高分、最低分和平均分。
### 回答3:
这个问题可以通过使用循环来解决。我们可以使用一个while循环来接收学生的输入,直到遇到结束标志为止(-1)。
首先,我们可以定义初始的最高分和最低分为0,平均分为0,并且计数器为0,用于统计班级人数。
接下来,我们可以使用一个无限循环来接收学生的分数输入。在循环内部,首先让用户输入一个分数。如果输入的分数大于100或小于0,则要求用户重新输入,直到输入合法的分数为止。然后,我们可以判断这个分数是否为结束标志(-1),如果是的话,退出循环。
如果输入的分数不是结束标志,那么我们可以判断该分数是否为最高分或最低分。如果是,我们可以更新最高分或最低分的值。并且,我们可以将该分数累加到平均分的总和中,并且计数器加1。
随着循环的进行,最后我们可以计算出最高分、最低分和平均分。最高分为之前保存的最高分的值,最低分为之前保存的最低分的值,平均分为总和除以计数器的值。
最后,我们可以输出这些结果,得到全班的最高分、最低分和平均分。
代码示例:
```
max_score = 0
min_score = 0
avg_score = 0
count = 0
while True:
score = int(input("请输入一个学生的分数:"))
while score > 100 or score < 0:
score = int(input("输入的分数无效,请重新输入:"))
if score == -1:
break
if score > max_score:
max_score = score
if score < min_score or min_score == 0:
min_score = score
avg_score += score
count += 1
avg_score /= count
print("全班的最高分是:%d" % max_score)
print("全班的最低分是:%d" % min_score)
print("全班的平均分是:%.2f" % avg_score)
```
这样,就可以根据输入的成绩计算出全班的最高分、最低分和平均分了。
阅读全文