python 計算student_grade.txt 中 語文成績的平均值, 找出數學成績最高的學生是誰


題目要求: 計算student_grade.txt 中 語文成績的平均值, 找出數學成績最高的學生是誰

方法一:

# 讀取原始文件並以行分隔
with open('student_grade.txt',mode='r', encoding='utf-8' ) as f: 
    data = f.readlines()  # 以行的方式, 讀文件
# 生成空列表, 並將每一行作為一個字符串放進列表中
K = []
for i in data:  # i 是一個字符串  '姓名\t語文\t數學\t英語\t總分\t班名次\n'
    split_t = i.split('')
    K.append(split_t)
K
# 求數學成績的最高值
for i in K[1:]:
    L.append(int(i[2]))
max(L)
#  求語文成績的平均值
n = 0
for i in K[1:]:
    n += int(i[1]) # 語文成績了
mean_yuwen = n/(len(K)-1)  # 所有人的語文成績相加之和(n) /  人數 ()
print(mean_yuwen)

  

方法二:

with open('student_grade.txt', 'r', encoding='utf-8') as f:
    data = f.read()

data_lines = data.splitlines()

empty = {}
for i in data_lines:
    data_list = i.split('\t')
    empty[data_list[0]] = data_list[1:]
empty.pop('姓名')
j=[]
for i in list(empty.values()) :
    j.append(i[1])
j=[int(t) for t in j]
j.sort()
f=str(j[-1])#找到最高的數學成績
f
for k ,v in empty.items():
    if v[1]==f:
        print(k)

  

方法三:

with open('student_grade.txt', 'r', encoding='utf-8') as f:
    data = f.read()                                         #讀取student_grade.txt的內容給data(文本)
data_lines=data.splitlines()                                #把文本轉換成列表,同時去掉換行
empty={}                                                    #定義一個空字典
for i in data_lines:                                        
    data_list=i.split('\t')                                 
    empty[data_list[0]]=data_list[1:]                        #遍歷列表data_lines中的每個元素,去掉'\t'后生成姓名和成績對應的字典.
empty.pop('姓名')                                            #彈出標題行
shuxue=0
yuwen=0
for k,v in empty.items():
    yuwen=yuwen+int(v[0])                                   #遍歷字典,求語文成績的總和
    if int(v[1])>shuxue:
        shuxue=int(v[1])                                    #遍歷字典empty,求出最高的數學成績
        name=k
print(name+'同學的數學成績最高,為%d分.'%shuxue,'\n','語文成績的平均值為%d分.'%(yuwen/len(empty)))   

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM