假设有n个学生,每个学生有3门课(国文、英文、数学)的成绩。 撰写一个程序,可从键盘输入以上资料(包括学生学号,姓名,国文成绩、英文成绩、数学成绩,当学号为 -111,即作出计算出每一课的平均成绩与每一个人的平均成绩。
还是说你要先输入学生人数(n)
n = int(input("请输入学生人数(n):"))
kd = {"国文":0,"英文":0,"数学":0}
li = []
for i in range(n):
d = {}
d['学号'] = input(f"第{i+1}个学生的学号:")
d['姓名'] = input(f"第{i+1}个学生的姓名:")
d['国文'] = float(input(f"第{i+1}个学生的国文成绩:"))
d['英文'] = float(input(f"第{i+1}个学生的英文成绩:"))
d['数学'] = float(input(f"第{i+1}个学生的数学成绩:"))
d['平均成绩'] = (d['国文']+d['英文']+d['数学'])/3
li.append(d)
kd['国文'] += d['国文']
kd['英文'] += d['英文']
kd['数学'] += d['数学']
for k,v in kd.items():
print(f'{k}课的平均成绩{v/len(li)}')
for d in li:
print(f"{d['姓名']}的平均成绩{d['平均成绩']}")
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632
il = []
nl = []
yl = []
sl = []
el = []
while 1:
id = input("学号:")
if id != '-111':
name = input("姓名:")
yuwen = int(input("语文:"))
shuxue = int(input("数学:"))
yingyu = int(input("英语:"))
il.append(id)
nl.append(name)
yl.append(yuwen)
sl.append(shuxue)
el.append(yingyu)
else:
aa = round(sum(yl)/len(yl), 2)
print('语文平均成绩:', aa)
bb = round(sum(sl)/len(sl), 2)
print('数学平均成绩:', bb)
cc = round(sum(el)/len(el), 2)
print('语文平均成绩:', cc)
for i in range(len(il)):
d = round((yl[i] + sl[i] + el[i]) / 3, 2)
print(f'{il[i]}-{nl[i]}:三科平均成绩{d}')
break
你的题目是说当学号输入为 -111 就结束循环开始输出每一课的平均成绩与每一个人的平均成绩。
代码如下:{如果对你有帮助,可以给我个采纳吗,谢谢!! 点击我这个回答右上方的【采纳】按钮}。
i = 0
kd = {"国文":0,"英文":0,"数学":0}
li = []
while True:
i += 1
d = {}
d['学号'] = input(f"第{i}个学生的学号:")
if d['学号']=='-111': #当学号为 -111 结束循环
break
d['姓名'] = input(f"第{i}个学生的姓名:")
d['国文'] = float(input(f"第{i}个学生的国文成绩:"))
d['英文'] = float(input(f"第{i}个学生的英文成绩:"))
d['数学'] = float(input(f"第{i}个学生的数学成绩:"))
d['平均成绩'] = (d['国文']+d['英文']+d['数学'])/3
li.append(d)
kd['国文'] += d['国文']
kd['英文'] += d['英文']
kd['数学'] += d['数学']
for k,v in kd.items():
print(f'{k}课的平均成绩{v/len(li)}')
for d in li:
print(f"{d['姓名']}的平均成绩{d['平均成绩']}")