怎么修改这一段python代码

count=0withopen('成绩.txt','a')asf:whileTrue:value=input('成绩:')ifvalue=='':breaksum=sum... count = 0
with open('成绩.txt', 'a') as f:
while True:
value = input('成绩:')
if value == '':
break
sum = sum + float(value)
count += 1
f.write(value + '\n')
f.write('avg= ' + str(sum / count) + '\n')
print('avg= ' + str(sum / count) + '\n')
怎么修改成输入名字和成绩,但是输出的时候能输出每个人的名字和对应成绩,由高到低排序,并且输出平均分,谢谢~
展开
 我来答
可靠的我心我在
2015-10-23 · TA获得超过2157个赞
知道小有建树答主
回答量:784
采纳率:77%
帮助的人:620万
展开全部
# -*- coding: utf-8 -*-

list_info=[]
while True:
    info = raw_input('输入名字和 成绩(用空格分隔  例如 张三 100),退出请输入exit ')
    if info.strip()=='exit':
        print 'byebye'
        break

    info = info.strip().split()
    #print info
    if len(info)<2:
        print '格式不准确:重新输入'
    else:
        list_info.append(info)


list_info=sorted(list_info, key=lambda student : student[1],reverse=True) 
print list_info
for i in list_info:
    print i #这里逐行写入文件
    
>>> 
输入名字和 成绩(用空格分隔  例如 张三 100),退出请输入exit a 4
输入名字和 成绩(用空格分隔  例如 张三 100),退出请输入exit b 5
输入名字和 成绩(用空格分隔  例如 张三 100),退出请输入exit c 3
输入名字和 成绩(用空格分隔  例如 张三 100),退出请输入exit exit
byebye
[['b', '5'], ['a', '4'], ['c', '3']]
['b', '5']
['a', '4']
['c', '3']
>>>
追问
大神大神再加一个最后求平均分~~~~!就完了,谢谢!!
追答
if list_info==[]:
    print '没有数据,无法算平均分'
else:
    print '平均分:%s'%(sum([int(i[1]) for i in list_info])/float(len(list_info)))
mieyoubeizhuce
2015-10-23 · TA获得超过610个赞
知道小有建树答主
回答量:733
采纳率:100%
帮助的人:468万
展开全部
缩进有错误!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式