我这段代码是需要做到输入一批学生成绩,计算平均成绩并统计不及格学生数。输入格式是每行输入一个数据,输入数据为负数则结束输入
时间: 2024-10-24 09:18:33 浏览: 39
为了帮助您完成这个功能,我们可以编写一个简单的Python程序。首先,我们需要读取用户的输入,直到遇到负数为止。然后我们将所有非负成绩累加起来,并记录下数量。下面是相应的代码:
```python
def calculate_grades():
total_score = 0
num_students = 0
is_negative = False
while True:
score_str = input("请输入学生的成绩(负数表示结束):")
if score_str == '-':
break # 如果输入的是负数,跳出循环
else:
try:
score = float(score_str)
if score < 0:
raise ValueError # 如果分数已经是负数,仍然抛出异常
total_score += score
num_students += 1
except ValueError:
print("输入错误,请输入数字。")
average_score = total_score / num_students if num_students > 0 else "无成绩"
failed_students = "无不及格" if num_students == 0 or total_score >= 0 else f"{num_students}人"
print(f"平均成绩:{average_score}")
print(f"不及格学生数:{failed_students}")
calculate_grades()
```
在这个代码里,我们使用了一个`while`循环,每次从用户那里获取一个成绩输入。如果输入是负数,则退出循环;否则尝试将输入转换为浮点数,并检查是否为负数。如果是正数,就累加到总分并增加学生计数;如果不是,就提示用户输入无效。最后,根据输入的学生数和总分,计算平均成绩和不及格学生人数。
阅读全文