2) 统计功能是目前各类应用中的常用功能之一,本题模拟统计功能的实现。请编写程序实现下面的功能:用户反复输入学生的信息,包括学号、姓名、四门课程的成绩,直到用户输入“Exit”为止;用户输入的内容需要保存;输入结束后用户输入学号(学号是不重复的),系统输出该学号对应的学生的所有信息,并计算该学生的平均分。如果输入学号重复的学生信息,则更新原有数据。 例如:输入: 001 小明90 80 70 60 002 小华100 90 95 75 Exit 继续输入:001 输出:001 小明90 80 70 60 平均分:75。
时间: 2024-03-07 20:48:09 浏览: 51
可以使用字典(dictionary)来保存学生信息,其中字典的键为学号,值为一个列表,包含学号、姓名和四门课程成绩。具体实现如下:
```python
students = {} # 保存学生信息的字典
while True:
line = input("请输入学生信息(学号 姓名 语文数学英语物理成绩),输入Exit结束:")
if line == "Exit":
break
# 将输入的一行字符串按空格分隔成5个部分,并转换为相应类型
stu_info = line.split()
stu_id = stu_info[0]
stu_name = stu_info[1]
# 转换成int类型
scores = [int(score) for score in stu_info[2:]]
if stu_id in students:
# 如果学生信息已存在,则更新成绩
students[stu_id][1:] = [stu_name] + scores
else:
# 否则添加新的学生信息
students[stu_id] = [stu_id, stu_name] + scores
# 输入学号,输出学生信息和平均分
while True:
stu_id = input("请输入学号,输入Exit结束:")
if stu_id == "Exit":
break
if stu_id in students:
# 如果学号存在,则输出学生信息和平均分
stu_info = students[stu_id]
avg_score = sum(stu_info[2:]) / 4
print("{} {} {} {} {} {} 平均分:{:.1f}".format(*stu_info, avg_score))
else:
# 否则提示学号不存在
print("学号{}不存在".format(stu_id))
```
代码中使用了两个循环,第一个while循环反复让用户输入学生信息,将每次输入的信息以字典的形式保存。当用户输入Exit时,循环结束。第二个while循环反复让用户输入学号,如果学号存在,则输出学生信息和平均分。当用户输入Exit时,循环结束。
阅读全文