我正在嘗試編寫一個讀取3類數據文件(如period1.txt,period2.txt)的程序。這些文件裏面有3個不同學生的名字,姓氏和3個考試成績。使用python讀取和寫入數據文件
數據文件的格式是這樣的
Meagan. Hesse. 99. 99. 99
我的程序,然後想採取平均分配檔次和寫在另一個TXT文件夾中的結果,也是學生的名字,如period1cgrade和period2grade
我已經試過固定的一些問題,但它看起來像它仍處於進展中的工作,我不知道是否我打開數據文件的權利,你可以看看這部分
def calcaverage(test1,test2,test3):
for count in range(test1,test2,test3):
curraverage=0
curraverage=((test1[count]+ test2[count]+ test3[count])/3)
currentaverage.append(curraverage)
if curraverage>= 90:
grade= "A"
lettergrades.append(grade)
elif curraverage >= 80 and curraverage < 90:
grade= "B"
lettergrades.append(grade)
elif curraverage >= 70 and curraverage < 80:
grade= "C"
lettergrades.append(grade)
elif curraverage < 70:
grade= "F"
lettergrades.append(grade)
name=[]
test1=[]
test2=[]
test3=[]
averagescore=[]
lettergrades=[]
with open ("period1.txt", 'r') as infile:
for line in infile:
values = line.split()
name.append(values[0] + ','+ values[1])
for line in infile:
values = line.split()
score1=float(values[2])
test1.append(score1)
for line in infile:
values = line.split()
score2=float(values[3])
test2.append(score2)
for line in inline:
values = line.split()
score3=float(values[4])
test3.append(score3)
averagescore=calcaverage(test1,test2,test3)
print(line)
所以到底這個代碼不工作? –
你需要學習如何調試你的代碼。就我個人而言,我更喜歡附加一個調試器,一次一行地遍歷代碼並檢查變量以查看發生了什麼。其他更喜歡使用'print()'和類似的方法來顯示代碼進展中的變量。沒有更多信息,我們將無法爲您提供很多幫助。至少,我們需要知道任何錯誤,得到的輸出等等。知道例如從文件中讀取了多少行,循環是否運行正確的次數也是有幫助的,等 – Basic
你不應該像上面做的那樣多次迭代同一個對象(在for循環中使用它)。 「對於infile行」被多次調用。 TBH,我從來沒有這樣做過,我不確定它在幕後做了什麼。我的猜測是這代表三個輸入文件,或者應該是。 – jaime