我正在嘗試瀏覽我創建的這個檔案,并且只提取檔案中人員的年齡。然后取年齡的平均值并將其列印出來。我試圖遍歷檔案中的行,它說生成器物件沒有屬性。我正在使用 python 3,并且我注釋掉了我之前使用的一些代碼,所以我不必擔心它。我也不知道我是否應該使用帶注釋的代碼,但我只是害怕失去到目前為止我得到的所有想法。如果我無法迭代,如何在回圈中獲取這些年齡?
f = open('myfile.txt','w')
f.write('Name, Age, Gender, Profession\n')
f.write('Harry, 23, Male, Software Engineer\n')
f.write('Sam, 25, Male, Lawyer\n')
f.write('Lisa, 29, Female, Computer Scientist\n')
f.write('Mary, 22, Female, Doctor\n')
f.close()
# print(readFile.read())
# readFile = open("myfile.txt")
with open('myfile.txt', 'r') as file:
for line in file:
values = (line.split(', ') for line in file)
if values.isdigit[1] == True:
numbers = 0
numbers = values
average = numbers % 4
print(average)
uj5u.com熱心網友回復:
嘗試:
f = open('myfile.txt','w')
f.write('Name, Age, Gender, Profession\n')
f.write('Harry, 23, Male, Software Engineer\n')
f.write('Sam, 25, Male, Lawyer\n')
f.write('Lisa, 29, Female, Computer Scientist\n')
f.write('Mary, 22, Female, Doctor\n')
f.close()
with open('myfile.txt', 'r') as file:
numbers = 0
for line in file:
values = line.split(', ')
if values[1].isdigit() == True:
numbers = int(values[1])
average = numbers / 4
print(average) # 24.75
有幾個問題:
values = (line.split(', ') for line in file)將生成器分配給values,而生成器沒有isdigit。您已經在使用for回圈,因此您不需要生成器(實際上您不應該)。在更正后的代碼中,
valuesnow 是一個字串串列。所以你需要使用values[1]來訪問串列中的一個專案,然后應用isdigit。您
numbers在每次迭代中進行重置。在回圈之前啟動變數。values[1]是一個字串,所以為了將它添加到numbers,您需要int.%是模運算子。用于/除法。使用硬編碼數字(在這種情況下,將某物除以特定數字
4)不是最佳選擇。您可能需要另一種方法來獲取記錄數。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/414151.html
標籤:
下一篇:Java檔案洗掉
