Python文件练习_读取文件并计算平均分

读取文件并计算平均分

文件如下

小白,88
小黑,90.5
小黄,
小花,33

第一次完成功能

score = []
total = 0
count = 0
with open('成绩',encoding='utf-8') as f: #以自动关闭文件的方法打开文件
    for line in f: #逐行循环文件,避免一次读取占用电脑内存
        score.append(line.split('')[1].strip()) #将分数取出放入列表
    for i in score:
        total += int(score[count]) #计算总分
        count += 1
    average = total/count
    print('平均成绩是%s'%average)

第二次优化

   (1) 可以边取成绩边统计,不需要额外创建数组再循环list,可以少一个循环

   (2) 添加非空校验,数组非空(如果数组只有名字没有,成绩),空字符串传转化为整型或者浮点型时会报错

   (3) 成绩不一定为整型,将数据调整为float

   (4) 平均分取小数点后两位

sum = 0
count = 0
with open('成绩',encoding='utf-8') as f:
    for line in f:
        if len(line.split(''))>1: #添加数组非空判断
            if line.split('')[1].strip(): #非空判断,空字符传转化为整型或者浮点型时会报错
            # 没有成绩,只计人数不计成绩,
                sum += float(line.split('')[1].strip()) #由int改为float,可以防止分数中有小数
        count += 1
    average = sum / count
    print('总分:{},人数:{},平均分是:{:.2f}'.format(sum,count,average))#平均分取小数点后两位

 

转载于:https://www.cnblogs.com/dongrui624/p/8715964.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值