讀取文件並計算平均分
文件如下
小白,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))#平均分取小數點后兩位