2014-12-08 40 views
0

我的代碼遇到的問題是打開文件後,它只會計算隨機生成的最後一個數字,並不會將它們全部添加。例如,如果您使用的數量爲2,它將只顯示最後生成的數字,而不是全部數字。這裏是提示:不計算以前文件中的所有數字? Python

編寫一個程序,將一系列隨機數寫入文件。每個隨機數應該在1到500的範圍內。應用程序應該讓用戶指定文件將保存多少個數字。下一個程序應該讀取文件中的隨機數,顯示數字,然後顯示從文件中讀取的數字和數字的總數。

# import the random module 
import random 

# open the file to write to 
random_numbers = open('ran_numbers.txt', 'w') 
# ask for numbers written to the file 
numberOfNumbers = int(input("How many numbers do you want written to the file?: ")) 
print("Your random numbers are: ") 
# number selection 
for count in range (numberOfNumbers): 
    number = random.randint(1,500) 
    print(number) 
# writing numbers to file with new line after 
random_numbers.write(str(number)+ '\n') 
# close 
random_numbers.close() 

random_numbers = open('ran_numbers.txt', 'r') 
number = 0 
total = 0 
print("List of numbers:") 
for line in random_numbers.readlines(): 
     print(line) 
     total = total+int(line) 
     number +=1 
print("The Sum of the numbers = "+str(total)) 
print("The total amount of numbers read are "+str(number)) 
+0

在循環內移動'raneom_numbers.write(str(number)+'\ n''線,對於Python來說,這意味着縮進它,你可能花費更少的時間來執行並發現錯誤。在這裏張貼。 – mpez0 2014-12-08 00:11:16

回答

1

只需在語句「random_numbers.write(str(number)+'\ n')」中縮進4個空格,使它位於for循環之下。然後你會得到你需要的輸出。實際發生的情況是,您只是將最後一個數字寫入您的文件,因爲您的寫入語句不在for循環中。

0

我不會做你的功課你,但我會建議你:

  1. 讀了你的代碼仔細,想什麼每一行正在做什麼。
  2. 如果您沒有看到問題,請在調試器下運行您的代碼,並觀察發生了什麼。
相關問題