【问题描述】 存储学生Zhang成绩的字典结构如下: stu={"name":"Zhang","english":80,"python":90,"math":100} 1)请使用上述结构输入学生的name及english、python和math三门课的成绩并存储到字典stu中(不考虑空数据的情况); 2)计算该同学的平均成绩,同时在字典中添加关键字"avg"用来表示平均成绩; 3)由高到低排序该学生的各科成绩; 4)输出该学生的姓名,各科成绩(保留两位小数)和平均成绩(保留两位小数)。 【样例输入】 Zhang 80 90 100 【样例输出】 Zhang 100.00 90.00 80.00 90.00 【样例说明】 输入为一行,分别是以空格分隔开的学生姓名、英语成绩、python成绩、数学成绩 输出为一行,分别是以空格分隔开的学生姓名、从高到低排序的各科成绩、平均成绩
时间: 2024-03-07 14:50:41 浏览: 243
【参考代码】如下:
```python
#输入学生姓名及各科成绩
stu={"name":input()}
stu["english"],stu["python"],stu["math"]=map(int,input().split())
#计算平均成绩
avg_score=(stu["english"]+stu["python"]+stu["math"])/3
stu["avg"]=avg_score
#由高到低排序各科成绩
sorted_score=sorted([stu["english"],stu["python"],stu["math"]],reverse=True)
#输出学生信息
print(stu["name"],end=" ")
for score in sorted_score:
print("{:.2f}".format(score),end=" ")
print("{:.2f}".format(avg_score))
```
【注意事项】
1. 输入学生成绩时需要将输入的字符串转换为整数,使用`map()`函数可以实现一行输入多个整数的功能。
2. 输出保留两位小数,可以使用`format()`函数格式化输出。
3. 排序可以使用Python内置的`sorted()`函数实现,关键字参数`reverse=True`表示倒序排列。
相关问题
存储学生Zhang成绩的字典结构如下: stu={"name":"Zhang","english":80,"python":90,"math":100} 1)请使用上述结构输入学生的name及english、python和math三门课的成绩并存储到字典stu中(不考虑空数据的情况); 2)计算该同学的平均成绩,同时在字典中添加关键字"avg"用来表示平均成绩; 3)由高到低排序该学生的各科成绩; 4)输出该学生的姓名,各科成绩(保留两位小数)和平均成绩(保留两位小数)。
1)输入学生的成绩并存储到字典stu中:
```python
stu = {"name": "Zhang"}
stu["english"] = 80
stu["python"] = 90
stu["math"] = 100
```
2)计算该学生的平均成绩并添加关键字"avg"到字典中:
```python
avg = (stu["english"] + stu["python"] + stu["math"]) / 3
stu["avg"] = avg
```
3)由高到低排序该学生的各科成绩:
```python
sorted_scores = sorted([(k, v) for k, v in stu.items() if k != "name" and k != "avg"], key=lambda x: x[1], reverse=True)
```
4)输出该学生的姓名和各科成绩及平均成绩:
```python
print("姓名:{0}\n英语成绩:{1:.2f}\nPython成绩:{2:.2f}\n数学成绩:{3:.2f}\n平均成绩:{4:.2f}".format(stu["name"], stu["english"], stu["python"], stu["math"], stu["avg"]))
```
完整代码如下:
```python
stu = {"name": "Zhang"}
stu["english"] = 80
stu["python"] = 90
stu["math"] = 100
avg = (stu["english"] + stu["python"] + stu["math"]) / 3
stu["avg"] = avg
sorted_scores = sorted([(k, v) for k, v in stu.items() if k != "name" and k != "avg"], key=lambda x: x[1], reverse=True)
print("姓名:{0}\n英语成绩:{1:.2f}\nPython成绩:{2:.2f}\n数学成绩:{3:.2f}\n平均成绩:{4:.2f}".format(stu["name"], stu["english"], stu["python"], stu["math"], stu["avg"]))
```
存储学生 Zhang 成绩的字典结构如下: stu =[" name ":" Zhang "," english ":80," python ":90," math ":100) 1)请使用上述结构输入学生的 name 及 english 、 python 和 math 三门课的成绩并存储到字典 stu 中(不考虑空数据的情况);2)计算该同学的平均成绩,同时在字典中添加关键字" avg "用来表示平均成绩; 3)由高到低排序该学生的各科成绩; 4)输出该学生的姓 ,各科成绩(保留两位小数)和平均成绩(保留两位小数)。
1)使用以下代码将学生的姓名和成绩存储到字典中:
```
stu = {"name": "Zhang", "english": 80, "python": 90, "math": 100}
```
2)计算该同学的平均成绩并添加到字典中:
```
avg_score = (stu["english"] + stu["python"] + stu["math"]) / 3
stu["avg"] = avg_score
```
3)使用以下代码将学生的成绩从高到低排序:
```
sorted_scores = sorted(stu.items(), key=lambda x: x[1], reverse=True)
```
4)使用以下代码输出该学生的姓,各科成绩和平均成绩:
```
name = stu["name"].split()[-1] # 获取姓氏
print("姓:", name)
for subject, score in sorted_scores:
if subject != "name":
print(subject, "成绩:", format(score, ".2f"))
print("平均成绩:", format(stu["avg"], ".2f"))
```
完整代码如下:
```
stu = {"name": "Zhang", "english": 80, "python": 90, "math": 100}
avg_score = (stu["english"] + stu["python"] + stu["math"]) / 3
stu["avg"] = avg_score
sorted_scores = sorted(stu.items(), key=lambda x: x[1], reverse=True)
name = stu["name"].split()[-1]
print("姓:", name)
for subject, score in sorted_scores:
if subject != "name":
print(subject, "成绩:", format(score, ".2f"))
print("平均成绩:", format(stu["avg"], ".2f"))
```
阅读全文