2014-02-27 90 views
0

基本上我試圖完成一個讀取文件。我製作了「make」文件,它將生成10個隨機數並將其寫入文本文件。這裏是我迄今爲止的「讀」文件...從Python列表中添加數字

def main(): 
    infile = open('mynumbers.txt', 'r') 
    nums = [] 
    line = infile.readline() 

    print ('The random numbers were:') 
    while line: 
     nums.append(int(line)) 
     print (line) 
     line = infile.readline() 

    total = sum(line) 
    print ('The total of the random numbers is:', total) 

main() 

我知道這是不完整的,我仍然在這一個初學者,這是我第一次介紹了計算機編程或Python。基本上我必須使用循環來收集mynumbers.txt中列出的所有數字的總和。任何幫助將不勝感激。這一直在推動我一堵牆。

+0

他/她是初學傢伙,請給他們一些鬆懈! – gravetii

回答

2

你並不需要在Python手動循環(這不是C,畢竟):

nums = [] 
with open("mynumbers.txt") as infile: 
    for line in infile: 
     nums.append(int(line)) 

現在你只需要採取的總和,但nums,當然不是的line

total = sum(nums) 
+1

錯字:'infile'與'file'。您可以將新讀取的整數添加到已初始化爲零的總變量中,而不是添加到列表中。 – pasztorpisti

0

雖然我上面添的回答去,這裏是另一種方式,如果你想使用readlines方法方法

# Open a file 
infile = open('mynumbers.txt', 'r') 

sum = 0 
lines = infile.readlines() 
for num in lines: 
    sum += int(num) 

print sum 
0

只是另一種解決辦法... :-)

with open("x.txt") as file: 
    total = sum(int(line) for line in file) 

該解決方案求和發電機對象的「結果」,所以它不是內存密集型尚短,優雅(Python的)。

1

通常一行代碼:

total = sum(map(int, open("mynumbers.txt"))) 

它確實產生整數列表(雖然很是暫時的)。

+0

他在Python 3上,所以它甚至不會生成一個列表 - 這絕對是最優雅的解決方案(+1),儘管對初學者來說可能有點多,尤其是沒有解釋。 –