日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python期中作业

發布時間:2023/12/15 python 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python期中作业 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

PYTHON程序設計期中作業

文章目錄

  • PYTHON程序設計期中作業
    • 題目要求
    • 初版
    • 第二版
    • 第三版
    • 第四版
    • 終版

題目要求


代碼及截圖請參考終版

初版

設計了計算出勤率、總成績和平均分的代碼

#fo=open("D:\\coder\\randomnumbers\\成績表 - 副本.csv","r",encoding="utf-8") fr=open("D:\\coder\\randomnumbers\\成績表 - 副本.csv","r",encoding="utf-8") fw=open("D:\\coder\\randomnumbers\\grade.csv","w") ls=[] list=[] for line in fr:line=line.replace("\n","")ls.append(line.split(",")) #print(ls) def chuqingnum(a,b,c):num=(a+b+c)/3return num def kaoqin(a,b,c):grade=10-(3-a-b-c)*3return gradedef zuoye(a,b,c):grade=((a+b+c)/3)*0.1return grade def final(a,b,c,d):grade=(10-(3-a)*3)*1+(b)*0.1+c*0.2+d*0.4return grade num,pingshi,qizhong,qimo=0,0,0,0 sum=0 for i in range(len(ls)):num=0pingshi=0for j in range(len(ls[i])):if ls[i][j].replace(".","").isnumeric():ls[i][j] = eval(ls[i][j])if j==1 or j==2 or j==3:num+=ls[i][j]elif j==4 or j==5 or j==6:pingshi+=ls[i][j]elif j==7:qizhong=ls[i][j]elif j==8:qimo=ls[i][j]numrate=(num/3)*100#print(qizhong)chuqinglv="{:.2f}%".format(numrate)final1=final(num,pingshi,qizhong,qimo)sum+=final1final1 = "{:.2f}".format(final1)list.append(chuqinglv)list.append(final1) list[0]='出勤率' list[1]='總成績' list0=[] list1=[] list2=[] for i in range(len(ls)):list0.append(ls[i][0]) #print(list0) for i in range(len(list)):if i%2==0:list1.append(list[i])else:list2.append(list[i]) li=[[0]*3 for _ in range(len(list1))] #print(li)for i in range(len(list1)):li[i][0]=(list0[i])li[i][1]=(list1[i])li[i][2]=(list2[i])li[-1][-2]='平均分' sum=sum/(len(list1)) li[-1][-1]="{:.2f}".format(sum) print(li) for row in li:#print(row)#fw.write(",".join(row)+"\n")fw.write(",".join('%s' %id for id in row) + "\n")fr.close() fw.close()

[[‘姓名’, ‘出勤率’, ‘總成績’], [‘閔躍龍’, ‘100.00%’, ‘82.60’], [‘盧蓓蓓’, ‘100.00%’, ‘78.40’], [‘榮榕’, ‘100.00%’, ‘81.00’], [‘洪晨’, ‘33.33%’, ‘82.40’], [‘胡佳慧’, ‘100.00%’, ‘90.50’], [‘陳亞文’, ‘100.00%’, ‘91.40’], [‘曾小敏’, ‘100.00%’, ‘80.60’], [‘王松巖’, ‘100.00%’, ‘88.60’], [‘曹淑玲’, ‘66.67%’, ‘85.90’], [‘涂光超’, ‘100.00%’, ‘77.00’], [‘吳佳寧’, ‘100.00%’, ‘79.10’], [‘陳俊榮’, ‘66.67%’, ‘79.60’], [‘余倩瑤’, ‘100.00%’, ‘90.10’], [‘卓佼霏’, ‘66.67%’, ‘84.30’], [‘陳彩月’, ‘100.00%’, ‘85.00’], [‘陳昌祺’, ‘100.00%’, ‘85.50’], [‘朱文靜’, ‘66.67%’, ‘85.40’], [‘陽宇’, ‘100.00%’, ‘85.60’], [‘覃瑩’, ‘100.00%’, ‘85.00’], [‘’, ‘平均分’, ‘78.48’]]

第二版

簡化了部分函數,將功能集成到一個函數中。

fr=open("D:\\coder\\randomnumbers\\成績表 - 副本.csv","r",encoding="utf-8") fw=open("D:\\coder\\randomnumbers\\grade.csv","w") ls,list=[],[]for line in fr:line=line.replace("\n","")ls.append(line.split(","))def final(a,b,c,d):grade=(10-(3-a)*3)*1+(b)*0.1+c*0.2+d*0.4return grade num,pingshi,qizhong,qimo,sum=0,0,0,0,0for i in range(len(ls)):num=0pingshi=0for j in range(len(ls[i])):if ls[i][j].replace(".","").isnumeric():ls[i][j] = eval(ls[i][j])if j==1 or j==2 or j==3:num+=ls[i][j]elif j==4 or j==5 or j==6:pingshi+=ls[i][j]elif j==7:qizhong=ls[i][j]elif j==8:qimo=ls[i][j]numrate=(num/3)*100chuqinglv="{:.2f}%".format(numrate)final1=final(num,pingshi,qizhong,qimo)sum+=final1final1 = "{:.2f}".format(final1)list.append(chuqinglv)list.append(final1)list[0]='出勤率' list[1]='總成績' list0,list1,list2=[],[],[] for i in range(len(ls)):list0.append(ls[i][0])for i in range(len(list)):if i%2==0:list1.append(list[i])else:list2.append(list[i]) li=[[0]*3 for _ in range(len(list1))]for i in range(len(list1)):li[i][0]=(list0[i])li[i][1]=(list1[i])li[i][2]=(list2[i])li[-1][-2]='平均分' sum=sum/(len(list1)) li[-1][-1]="{:.2f}".format(sum) print(li) for row in li:fw.write(",".join('%s' %id for id in row) + "\n")fr.close() fw.close()

第三版

代碼分為讀入文件,定義函數和執行主程序三個部分,并增加了注釋。

#定義打開和寫入文件的路徑 fr=open("D:\\coder\\randomnumbers\\成績表 - 副本.csv","r",encoding="utf-8") fw=open("D:\\coder\\randomnumbers\\grade.csv","w")#聲明變量和定義函數 ls,list=[],[] sum=0 def trans(l): #將csv讀入,轉化,返回列表形式for line in l:line = line.replace("\n", "")ls.append(line.split(","))return lsdef final(a,b,c,d): #計算總分的函數grade=(10-(3-a)*3)*1+(b)*0.1+c*0.2+d*0.4return gradedef main(ls): #主函數,輸入為處理好的列表,輸出為列表形式的出勤率和總分qizhong,qimo,numerate=0,0,0global sumfor i in range(len(ls)):num=0pingshi=0for j in range(len(ls[i])):if ls[i][j].replace(".", "").isnumeric():ls[i][j] = eval(ls[i][j])if j == 1 or j == 2 or j == 3:num += ls[i][j]elif j == 4 or j == 5 or j == 6:pingshi += ls[i][j]elif j == 7:qizhong = ls[i][j]elif j == 8:qimo = ls[i][j]numrate = (num / 3) * 100chuqinglv = "{:.2f}%".format(numrate)final1 = final(num, pingshi, qizhong, qimo)sum += final1final1 = "{:.2f}".format(final1)list.append(chuqinglv)list.append(final1)sum = sum / (len(list) / 2)return listdef shuru(list): #將個人姓名和漢字部分加入,計算班級平均分,形成能夠被csv文件讀寫的列表形式list[0] = '出勤率'list[1] = '總成績'list0, list1, list2 = [], [], []for i in range(len(ls)):list0.append(ls[i][0])for i in range(len(list)):if i % 2 == 0:list1.append(list[i])else:list2.append(list[i])li = [[0] * 3 for _ in range(len(list1))]for i in range(len(list1)):li[i][0] = (list0[i])li[i][1] = (list1[i])li[i][2] = (list2[i])li[-1][-2]='平均分'li[-1][-1]="{:.2f}".format(sum)return li #主程序 trans(fr) list=main(ls)li=shuru(list) print(li) #檢查輸出內容 for row in li: #寫入csv文件fw.write(",".join('%s' %id for id in row) + "\n") fr.close() fw.close()

[[‘姓名’, ‘出勤率’, ‘總成績’], [‘閔躍龍’, ‘100.00%’, ‘82.60’], [‘盧蓓蓓’, ‘100.00%’, ‘78.40’], [‘榮榕’, ‘100.00%’, ‘81.00’], [‘洪晨’, ‘33.33%’, ‘82.40’], [‘胡佳慧’, ‘100.00%’, ‘90.50’], [‘陳亞文’, ‘100.00%’, ‘91.40’], [‘曾小敏’, ‘100.00%’, ‘80.60’], [‘王松巖’, ‘100.00%’, ‘88.60’], [‘曹淑玲’, ‘66.67%’, ‘85.90’], [‘涂光超’, ‘100.00%’, ‘77.00’], [‘吳佳寧’, ‘100.00%’, ‘79.10’], [‘陳俊榮’, ‘66.67%’, ‘79.60’], [‘余倩瑤’, ‘100.00%’, ‘90.10’], [‘卓佼霏’, ‘66.67%’, ‘84.30’], [‘陳彩月’, ‘100.00%’, ‘85.00’], [‘陳昌祺’, ‘100.00%’, ‘85.50’], [‘朱文靜’, ‘66.67%’, ‘85.40’], [‘陽宇’, ‘100.00%’, ‘85.60’], [‘覃瑩’, ‘100.00%’, ‘85.00’], [‘’, ‘平均分’, ‘78.48’]]

第四版

將所得數據寫入初始表格。

#定義打開和寫入文件的路徑 fr=open("D:\\coder\\randomnumbers\\成績表 - 副本.csv","r",encoding="utf-8") fw=open("D:\\coder\\randomnumbers\\grade.csv","w")#聲明變量和定義函數 ls,list=[],[] sum=0 def trans(l): #將csv讀入,轉化,返回列表形式for line in l:line = line.replace("\n", "")ls.append(line.split(","))return lsdef final(a,b,c,d): #計算總分的函數grade=(10-(3-a)*3)*1+(b)*0.1+c*0.2+d*0.4return gradedef main(ls): #主函數,輸入為處理好的列表,輸出為列表形式的出勤率和總分qizhong,qimo,numerate=0,0,0global sumfor i in range(len(ls)):num=0pingshi=0for j in range(len(ls[i])):if ls[i][j].replace(".", "").isnumeric(): #檢查是否為數字ls[i][j] = eval(ls[i][j])if j == 1 or j == 2 or j == 3:num += ls[i][j]elif j == 4 or j == 5 or j == 6:pingshi += ls[i][j]elif j == 7:qizhong = ls[i][j]elif j == 8:qimo = ls[i][j]numrate = (num / 3) * 100chuqinglv = "{:.2f}%".format(numrate)final1 = final(num, pingshi, qizhong, qimo)sum += final1final1 = "{:.2f}".format(final1)list.append(chuqinglv)list.append(final1)sum = sum / (len(list) / 2)return listdef shuru(list,ls): #將個人姓名和漢字部分加入,計算班級平均分,形成能夠被csv文件讀寫的列表形式list[0] = '出勤率'list[1] = '總成績'list1, list2 = [], []for i in range(len(list)):if i % 2 == 0:list1.append(list[i])else:list2.append(list[i])for i in range(len(list1)-1):ls[i].append(list1[i])ls[i].append(list2[i])ls[0].append('總成績平均分')grades="{:.2f}".format(sum)ls[1].append(grades)return ls#主程序ls=trans(fr) list=main(ls) li=shuru(list,ls) print(li) #檢查輸出內容 for row in li: #寫入csv文件fw.write(",".join('%s' %id for id in row) + "\n") fr.close() fw.close()

[[‘姓名’, ‘考勤1’, ‘考勤2’, ‘考勤3’, ‘作業1’, ‘作業2’, ‘作業3’, ‘期中成績’, ‘期末成績’, ‘出勤率’, ‘總成績’, ‘總成績平均分’], [‘閔躍龍’, 1, 1, 1, 90, 80, 80, 78, 80, ‘100.00%’, ‘82.60’, ‘78.48’], [‘盧蓓蓓’, 1, 1, 1, 80, 72, 80, 82, 72, ‘100.00%’, ‘78.40’], [‘榮榕’, 1, 1, 1, 85, 75, 80, 85, 75, ‘100.00%’, ‘81.00’], [‘洪晨’, 1, 0, 0, 95, 85, 100, 82, 85, ‘33.33%’, ‘82.40’], [‘胡佳慧’, 1, 1, 1, 95, 88, 90, 90, 88, ‘100.00%’, ‘90.50’], [‘陳亞文’, 1, 1, 1, 100, 92, 90, 82, 92, ‘100.00%’, ‘91.40’], [‘曾小敏’, 1, 1, 1, 95, 75, 80, 78, 75, ‘100.00%’, ‘80.60’], [‘王松巖’, 1, 1, 1, 75, 92, 75, 88, 92, ‘100.00%’, ‘88.60’], [‘曹淑玲’, 1, 0, 1, 85, 88, 80, 92, 88, ‘66.67%’, ‘85.90’], [‘涂光超’, 1, 1, 1, 90, 72, 90, 65, 72, ‘100.00%’, ‘77.00’], [‘吳佳寧’, 1, 1, 1, 85, 72, 90, 78, 72, ‘100.00%’, ‘79.10’], [‘陳俊榮’, 0, 1, 1, 95, 75, 80, 88, 75, ‘66.67%’, ‘79.60’], [‘余倩瑤’, 1, 1, 1, 85, 90, 80, 93, 90, ‘100.00%’, ‘90.10’], [‘卓佼霏’, 0, 1, 1, 90, 85, 90, 84, 85, ‘66.67%’, ‘84.30’], [‘陳彩月’, 1, 1, 1, 90, 80, 90, 85, 80, ‘100.00%’, ‘85.00’], [‘陳昌祺’, 1, 1, 1, 90, 80, 75, 95, 80, ‘100.00%’, ‘85.50’], [‘朱文靜’, 1, 1, 0, 90, 90, 80, 82, 90, ‘66.67%’, ‘85.40’], [‘陽宇’, 1, 1, 1, 90, 82, 80, 88, 82, ‘100.00%’, ‘85.60’], [‘覃瑩’, 1, 1, 1, 100, 80, 90, 80, 80, ‘100.00%’, ‘85.00’], [‘’]]

終版

在個人出勤率的基礎上,添加了班級出勤率。

#定義打開和寫入文件的路徑 fr=open("D:\\coder\\randomnumbers\\成績表 - 副本.csv","r",encoding="utf-8") fw=open("D:\\coder\\randomnumbers\\grade.csv","w")#聲明變量和定義函數 ls,list=[],[] sum,banji=0,0 def trans(l): #將csv讀入,轉化,返回列表形式for line in l:line = line.replace("\n", "")ls.append(line.split(","))return lsdef final(a,b,c,d): #計算總分的函數grade=(10-(3-a)*3)*1+(b)*0.1+c*0.2+d*0.4return gradedef main(ls): #主函數,輸入為處理好的列表,輸出為列表形式的出勤率和總分qizhong,qimo,numerate=0,0,0global sum,banjifor i in range(len(ls)):num=0pingshi=0for j in range(len(ls[i])):if ls[i][j].replace(".", "").isnumeric(): #檢查是否為數字ls[i][j] = eval(ls[i][j])if j == 1 or j == 2 or j == 3:num += ls[i][j]elif j == 4 or j == 5 or j == 6:pingshi += ls[i][j]elif j == 7:qizhong = ls[i][j]elif j == 8:qimo = ls[i][j]banji+=numnumrate = (num / 3) * 100chuqinglv = "{:.2f}%".format(numrate)final1 = final(num, pingshi, qizhong, qimo)sum += final1final1 = "{:.2f}".format(final1)list.append(chuqinglv)list.append(final1)sum = sum / (len(list) / 2)banji=banji/(19*3)return listdef shuru(list,ls): #將個人姓名和漢字部分加入,計算班級平均分,形成能夠被csv文件讀寫的列表形式list[0] = '出勤率'list[1] = '總成績'list1, list2 = [], []for i in range(len(list)):if i % 2 == 0:list1.append(list[i])else:list2.append(list[i])for i in range(len(list1)-1):ls[i].append(list1[i])ls[i].append(list2[i])ls[0].append('總成績平均分')grades="{:.2f}".format(sum)ls[0].append('班級出勤率')chuqinglv="{:.2f}".format(banji)ls[1].append(grades)ls[1].append(chuqinglv)return ls#主程序ls=trans(fr) #讀入數據 list=main(ls) #處理數據 li=shuru(list,ls) #轉化成輸出數據 print(li) #檢查輸出內容 for row in li: #寫入csv文件fw.write(",".join('%s' %id for id in row) + "\n") fr.close() fw.close()

總結

以上是生活随笔為你收集整理的python期中作业的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。