傻了,大佬救救孩子吧

14122 2019-12-12 09:21:51
python实现:输入10个同学5门成绩的分数,找出最高分对应同学的对应课程。
...全文
151 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
libralibra 2019-12-17
  • 打赏
  • 举报
回复
引用 3 楼 weixin_46014873 的回复:

把这句total = sum(scores)
改成total = sum(scores[1:])
放风喽 2019-12-14
  • 打赏
  • 举报
回复
# 空的学生列表 xueshengs = [] # 科目列表 kemus = ["数学","语文","英语","历史","地理",] # 手输成绩 for i in range(2): name = input("请输入学生的名字:") shuxue = int(input("请输入该学生的数学成绩:")) yuwen = int(input("请输入该学生的语文成绩:")) yingyu = int(input("请输入该学生的英语成绩:")) lishi = int(input("请输入该学生的历史成绩:")) dili = int(input("请输入该学生的地理成绩:")) chengjidan = {"姓名":name,"数学":shuxue,"语文":yuwen,"英语":yingyu,"历史":lishi,"地理":dili} xueshengs.append(chengjidan) # 计算学生平均成绩 for xuesheng in xueshengs: zongchengji = 0 for value in xuesheng.values(): if type(value) == int: zongchengji = zongchengji + value print("%s的平均分数是%d" % (xuesheng["姓名"],zongchengji / len(kemus))) # 计算科目平均成绩 for kemu in kemus: zongshu = 0 for i in xueshengs: zongshu = zongshu + i[kemu] print("%s科目的平均成绩是%d" % (kemu,zongshu / len(xueshengs))) # 获取最大值 def zuiqiang(kemu): jieguo = 0 for i in xueshengs: if i[kemu] >= jieguo: jieguo = i[kemu] return jieguo for i in kemus: maxzhi = zuiqiang(i) wangzhes = [] for t in xueshengs: if t[i] == maxzhi: wangzhes.append(t["姓名"]) if len(wangzhes) != 1: wangzhe = ",".join(wangzhes) print("%s科目的最强王者是%s--%d分" % (i,wangzhe,maxzhi)) else: print("%s科目的最强王者是%s--%d分" % (i,wangzhes[0],maxzhi))
14122 2019-12-14
  • 打赏
  • 举报
回复
def R( s="" ):
return int(input(s))

print("Please input scores of students")
print("Scores of a student should be separated by spaces")
print("Different scores of students should be written in differnt lines")

scores = [ [0] * 5 for i in range(10)]

Max = 0
cnt = 0
Mst = []
Msu = []
avst = [0] * 10
avsu = [0] * 5

def sett( student, subject, score ):
global cnt, Max
if( score < Max ):
return None
if( score > Max ):
Mst.clear()
Msu.clear()
cnt = 0
Max = score

Mst.append(student)
Msu.append(subject)
cnt += 1

for i in range( 10 ):
tmp = input().split()
tmp = [ int(x) for x in tmp ]
scores[i] = tmp
for j in range( 5 ):
avst[i] += tmp[j]
avsu[j] += tmp[j]
sett( i, j, tmp[j] )

print("quiz1\n\n")
sum2 = 0
sum1 = 0
for i in range( 10 ):
avst[i] /= 5
sum2 += avst[i] ** 2
sum1 += avst[i]
print("第%d名学生平均分为: %.2f"%(i+1,avst[i]) )

print("\nquiz2\n\n")
for i in range( 5 ):
print("第%d门课程平均分为: %.2f"%(i+1,avsu[i]/10) )

print("\nquiz3\n\n")
print("最高分数为%d"%Max)
for i in range( cnt ):
print("第%d名学生 第%d门课程"%(Mst[i]+1,Msu[i]+1))


print("\nquiz4\n\n")
print("方差为%.4f"%(sum2/10-(sum1/10)**2))

这是我同学写的
14122 2019-12-14
  • 打赏
  • 举报
回复
可是题目要求是求50个分数中最高分,不是每科最高分啊














[/quote]
放风喽 2019-12-14
  • 打赏
  • 举报
回复
# 空的学生列表
xueshengs = []
# 科目列表
kemus = ["数学","语文","英语","历史","地理",]
# 手输成绩
for i in range(10):
# 输入名字,input接收的是字符串,名字就是字符串
name = input("请输入学生的名字:")
# 输入成绩,因为需要计算,所以要转化成数字
shuxue = int(input("请输入该学生的数学成绩:"))
yuwen = int(input("请输入该学生的语文成绩:"))
yingyu = int(input("请输入该学生的英语成绩:"))
lishi = int(input("请输入该学生的历史成绩:"))
dili = int(input("请输入该学生的地理成绩:"))
# 构造字典,字典是精确保存数据,如果用列表,需要顺序不能乱
chengjidan = {"姓名":name,"数学":shuxue,"语文":yuwen,"英语":yingyu,"历史":lishi,"地理":dili}
# 将每个人的信息,保存进列表
xueshengs.append(chengjidan)
# 计算学生平均成绩
# 遍历每个学生
for xuesheng in xueshengs:
# 定义一个0值
zongchengji = 0
# 遍历这个学生的内容
for value in xuesheng.values():
# 判断是不是数字,
if type(value) == int:
# 将数字加到一起,就是该学生总成绩
zongchengji = zongchengji + value
# 总成绩除以科目数量,就是学生的平均成绩(前提是该学生每个考试都必须参加)
print("%s的平均分数是%d" % (xuesheng["姓名"],zongchengji / len(kemus)))
# 计算科目平均成绩
# 遍历所有科目,
for kemu in kemus:
# 定义一个0值
zongshu = 0
# 遍历所有学生这个科目的成绩,加起来就是这个科目的总成绩
for i in xueshengs:
zongshu = zongshu + i[kemu]
# 总成绩除以学生数量,就是平均成绩(前提所有学生都必须考试)
print("%s科目的平均成绩是%d" % (kemu,zongshu / len(xueshengs)))

# 获取所有人所有科目的最大值
def maxzhi():
# 定义一个成绩列表,存放所有人,所有科目的成绩
chengjibiao = []
# 遍历所有人
for i in xueshengs:
# 遍历这个人的所有内容
for t in i.values():
# 判断是不是数字
if type(t) == int:
# 将数字添加到成绩列表
chengjibiao.append(t)
# 返回成绩列表中的最大值
return max(chengjibiao)

# 获取最大值的人、科目、得分
# 定义一个最强王者的列表
wangzhes = []
# 遍历所有学生
for i in xueshengs:
# 遍历这个学生的所有键值对
for key,value in i.items():
# 判断成绩是不是和最大成绩一样
if value == maxzhi():
# 如果是一样,将这个人的姓名,科目,成绩添加到最强王者里
wangzhes.append({"姓名":i["姓名"],"科目":key,"得分":value})
# 开始输出
print("最高得分是:")
# 遍历最强王者列表
for i in wangzhes:
print("%s的%s科目,得分%d分" % (i["姓名"],i["科目"],i["得分"]))

















14122 2019-12-13
  • 打赏
  • 举报
回复
14122 2019-12-13
  • 打赏
  • 举报
回复
我不晓得,老师布置的作业嘛……
放风喽 2019-12-13
  • 打赏
  • 举报
回复
# 空的学生列表
xueshengs = []
# 手输成绩
for i in range(10):
    name = input("请输入学生的名字:")
    shuxue = int(input("请输入该学生的数学成绩:"))
    yuwen = int(input("请输入该学生的语文成绩:"))
    yingyu = int(input("请输入该学生的英语成绩:"))
    lishi = int(input("请输入该学生的历史成绩:"))
    dili = int(input("请输入该学生的地理成绩:"))
    chengjidan = {"姓名":name,"数学":shuxue,"语文":yuwen,"英语":yingyu,"历史":lishi,"地理":dili}
    xueshengs.append(chengjidan)
# print(xueshengs)
# 科目列表
kemus = ["数学","语文","英语","历史","地理",]
# 获取最大值
def zuiqiang(kemu):
    jieguo = 0
    for i in xueshengs:
        if i[kemu] >= jieguo:
            jieguo = i[kemu]
    return jieguo
for i in kemus:
    maxzhi = zuiqiang(i)
    maxxuesheng = []
    for t in xueshengs:
        if i[i] = maxzhi:
            maxxuesheng.append(i["姓名"])
    print("%s科目最强者是%s--%d" % (i,maxxuesheng,maxzhi))
兄弟,你要求有点高 这只是学习语法的使用,你不会真的要用上吧 现在还没做异常处理,我不想做了,我自己的程序我都很少捕捉异常
14122 2019-12-13
  • 打赏
  • 举报
回复
就数学最高科目也应该有A,但是只统计了B嘞emmmm
14122 2019-12-13
  • 打赏
  • 举报
回复
引用 6 楼 天不绝我 的回复:
# 空的学生列表
xueshengs = []
# 手输成绩
for i in range(10):
name = input("请输入学生的名字:")
shuxue = int(input("请输入该学生的数学成绩:"))
yuwen = int(input("请输入该学生的语文成绩:"))
yingyu = int(input("请输入该学生的英语成绩:"))
lishi = int(input("请输入该学生的历史成绩:"))
dili = int(input("请输入该学生的地理成绩:"))
chengjidan = {"姓名":name,"数学":shuxue,"语文":yuwen,"英语":yingyu,"历史":lishi,"地理":dili}
xueshengs.append(chengjidan)
# print(xueshengs)
# 科目列表
kemus = ["数学","语文","英语","历史","地理",]
# 获取最大值
def zuiqiang(kemu):
jieguo = 0
xingming = 0
for i in xueshengs:
if i[kemu] >= jieguo:
jieguo = i[kemu]
xingming = i["姓名"]
return jieguo,xingming
for i in kemus:
jieguo,xingming = zuiqiang(i)
print("%s科目最高成绩是%s--%d分" % (i,xingming,jieguo))

放风喽 2019-12-13
  • 打赏
  • 举报
回复


# 空的学生列表
xueshengs = []
# 手输成绩
for i in range(10):
name = input("请输入学生的名字:")
shuxue = int(input("请输入该学生的数学成绩:"))
yuwen = int(input("请输入该学生的语文成绩:"))
yingyu = int(input("请输入该学生的英语成绩:"))
lishi = int(input("请输入该学生的历史成绩:"))
dili = int(input("请输入该学生的地理成绩:"))
chengjidan = {"姓名":name,"数学":shuxue,"语文":yuwen,"英语":yingyu,"历史":lishi,"地理":dili}
xueshengs.append(chengjidan)
# print(xueshengs)
# 科目列表
kemus = ["数学","语文","英语","历史","地理",]
# 获取最大值
def zuiqiang(kemu):
jieguo = 0
xingming = 0
for i in xueshengs:
if i[kemu] >= jieguo:
jieguo = i[kemu]
xingming = i["姓名"]
return jieguo,xingming
for i in kemus:
jieguo,xingming = zuiqiang(i)
print("%s科目最高成绩是%s--%d分" % (i,xingming,jieguo))
14122 2019-12-13
  • 打赏
  • 举报
回复
引用 4 楼 天不绝我 的回复:
字典{姓名,[成绩]}
emmm所以怎么改?
放风喽 2019-12-13
  • 打赏
  • 举报
回复
字典{姓名,[成绩]}
libralibra 2019-12-12
  • 打赏
  • 举报
回复
all_scores = {}
total_list = []
for i in range(10):
name = input('输入学生姓名:')
score = input('输入5门课程成绩,用逗号分隔:')
scores = [name]+[int(x) for x in score.split(',')]
total = sum(scores)
total_list.append(total)
if total in all_scores:
all_scores[total].append(scores)
else:
all_scores[total] = [scores]
print('最高分是:',max(total_list),'一共有 ',len(all_scores[max(total_list)]),'人')
for student in all_scores[max(total_list)]:
print('姓名:',student[0])
print('成绩:',student[1:])

37,720

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧