已知张三同学的English、Python、Math三门课程的成绩分别为80、90、100,编写程序将姓名及成绩保存到字典stu中,并计算其平均成绩,同时在字典stu中添加关键字"avg"用来表示平均成绩,最后通过字典遍历分行输出姓名及课程成绩、平均成绩。
时间: 2024-03-25 22:35:58 浏览: 76
以下是一个 Python 程序示例,可以实现上述要求:
```python
stu = {
"name": "张三",
"English": 80,
"Python": 90,
"Math": 100
}
# 计算平均成绩
avg = sum(stu.values()[1:]) / 3
stu["avg"] = avg
# 遍历字典并输出
for key, value in stu.items():
if key == "name":
print(key + ": " + value)
else:
print(key + ": " + str(value))
print("平均成绩:" + str(avg))
```
在这个程序中,我们首先创建了一个字典 `stu`,其中包含了学生姓名和三门课程的成绩。然后,我们使用 `sum()` 函数和字典的 `values()` 方法计算平均成绩,并将其添加到字典中作为新的关键字 `"avg"`。
接下来,我们使用 `items()` 方法遍历字典,并根据关键字输出相应的信息。最后,我们再次输出平均成绩。注意,在输出学生姓名时,我们使用了一个条件语句来判断当前的关键字是否为 `"name"`,以便输出正确的信息。
相关问题
python存储学生张三成绩的字典结构如下: d={"name":"张三","english":80,"python":90,"math":100} 请编写程序完成以下三个需求: 1)请使用上述结构,输入 5 名学生的 name 及 english、python 和 math 三门课的成绩,并 存储到列表 scores 中; 2)计算每个同学的平均成绩,同时在字典中添加关键字"avg"用来表示平均成绩; 3)按照每个学生的平均成绩由高到低排序,在控制台输出 5 个学生的相关信息,并写入 到文件 socres.txt 中。
好的,根据您的要求,我来编写 Python 代码:
```python
# 存储学生成绩的列表
scores = []
# 输入 5 名学生的成绩信息
for i in range(5):
# 输入学生姓名
name = input("请输入第%d个学生的姓名:" % (i+1))
# 输入英语成绩
english = int(input("请输入第%d个学生的英语成绩:" % (i+1)))
# 输入Python成绩
python = int(input("请输入第%d个学生的Python成绩:" % (i+1)))
# 输入数学成绩
math = int(input("请输入第%d个学生的数学成绩:" % (i+1)))
# 将成绩信息存储到字典中
d = {"name": name, "english": english, "python": python, "math": math}
# 将字典添加到列表中
scores.append(d)
# 计算每个同学的平均成绩,同时在字典中添加关键字"avg"用来表示平均成绩
for d in scores:
avg = (d["english"] + d["python"] + d["math"]) / 3
d["avg"] = avg
# 按照每个学生的平均成绩由高到低排序
scores = sorted(scores, key=lambda d: d["avg"], reverse=True)
# 在控制台输出 5 个学生的相关信息,并写入到文件 socres.txt 中
with open("scores.txt", "w") as f:
for d in scores:
print("姓名:%s,英语成绩:%d,Python成绩:%d,数学成绩:%d,平均成绩:%.2f" %
(d["name"], d["english"], d["python"], d["math"], d["avg"]))
f.write("姓名:%s,英语成绩:%d,Python成绩:%d,数学成绩:%d,平均成绩:%.2f\n" %
(d["name"], d["english"], d["python"], d["math"], d["avg"]))
```
注意:上述代码中,我们使用了 lambda 函数来指定排序规则,其中 `key=lambda d: d["avg"]` 表示按照每个学生的平均成绩进行排序,`reverse=True` 表示按照降序排列。
存储学生张三成绩的字典结构如下: d=("nane”:张三”,“english :80,"python":90,"math :100) 请编写程序完成以下三个求: 1)请使用上述结构,输入5名学生的name 及english. python 和math三门课的成绩,并 存储到列表scores中; 2)计算每个同学的平均成绩,同时在字典中添加关键字"avg”用来表示平均成绩; 3)按照每个学生的平均成绩由到低排序,在控制台输出5个学生的相关信息,并写入 到文件socres.txt中。Python
1) 请使用上述结构,输入5名学生的name及english, python和math三门课的成绩,并存储到列表scores中:
```
scores = []
for i in range(5):
name = input("请输入第{}个学生的姓名:".format(i+1))
english = int(input("请输入{}的英语成绩:".format(name)))
python = int(input("请输入{}的Python成绩:".format(name)))
math = int(input("请输入{}的数学成绩:".format(name)))
d = {"name": name, "english": english, "python": python, "math": math}
scores.append(d)
print(scores)
```
2) 计算每个同学的平均成绩,同时在字典中添加关键字"avg"用来表示平均成绩:
```
for d in scores:
avg = (d['english'] + d['python'] + d['math']) / 3
d['avg'] = avg
print(scores)
```
3) 按照每个学生的平均成绩由到低排序,在控制台输出5个学生的相关信息,并写入到文件scores.txt中:
```
# 按照平均成绩从高到低排序
scores.sort(key=lambda x: x['avg'], reverse=True)
# 在控制台输出相关信息
for d in scores:
print("姓名:{},英语成绩:{},Python成绩:{},数学成绩:{},平均成绩:{}".format(d['name'], d['english'], d['python'], d['math'], d['avg']))
# 写入文件scores.txt
with open('scores.txt', 'w') as f:
for d in scores:
f.write("姓名:{},英语成绩:{},Python成绩:{},数学成绩:{},平均成绩:{}\n".format(d['name'], d['english'], d['python'], d['math'], d['avg']))
```
以上代码实现了按照平均成绩从高到低排序,并在控制台输出相关信息和写入文件中。
阅读全文