读取文件并计算平均分
文件如下
小白,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))#平均分取小数点后两位