有一份成績單,需要計算每個學生的平均分,並添加在每一行的末尾
有一份成績單,需要計算每個學生的平均分,並添加在每一行的末尾
def get_data(): f = open('a.txt', 'r', encoding='utf-8') d = f.read() f.close() return d def get_score(d): qname = input('輸入姓名') qstatus = False for i in d.split('\n')[1::]: xuehao, name, yuwei, shuxue, yingyu = [j.strip() for j in i.split(' ') if j] if qname == name: print(f'姓名{name},學號{xuehao},語文{yuwei},數學{shuxue},英語{yingyu}') qstatus = True if qstatus is False: print('無此人成績信息') def get_everyone(d): data_list = [] for i in d.split('\n')[1::]: xuehao, name, yuwei, shuxue, yingyu = [j.strip() for j in i.split(' ') if j] avg = (int(yuwei) + int(shuxue) + int(yingyu)) / 3 print(f'學生:{name},語文{yuwei},數學{shuxue},英語{yingyu},平均分{avg}') data_list.append([xuehao, name, yuwei, shuxue, yingyu, avg]) # 寫入新的文件 f = open('new.txt', 'w', encoding='utf-8') f.write('學號 姓名 語文 數學 英語\n') for i in data_list: f.write(' '.join([str(j) for j in i])) f.write('\n') f.close() if __name__ == '__main__': d = get_data() print('人員總數', len(d.split('\n'))-1) get_score(d) get_everyone(d)
Excel嗎?數據示例方便看看?