2013-02-16 113 views
0

說明:隨機數文件寫入

  • 寫寫入一個隨機數序列到文件的程序。
  • 每個隨機數應該在1到100的範圍內。
  • 應用程序應讓用戶指定文件將保存多少個隨機數。

這是我有:

import random 

afile = open("Random.txt", "w") 

for line in afile: 
    for i in range(input('How many random numbers?: ')): 
     line = random.randint(1, 100) 
     afile.write(line) 
     print(line) 

afile.close() 

print("\nReading the file now.") 
afile = open("Random.txt", "r") 
print(afile.read()) 
afile.close() 

的幾個問題:

  1. 它不是寫基於用戶設置的範圍在文件中的隨機數。

  2. 打開文件後無法關閉。

  3. 當文件被讀取時,什麼也沒有。

雖然我認爲設置沒問題,但它似乎總是卡在執行上。

回答

4

擺脫for line in afile:,拿出裏面的東西。另外,因爲input在Python 3中返回一個字符串,所以首先將其轉換爲int。而當你必須寫一個字符串時,你正試圖寫一個整數到一個文件。

這是它應該是什麼樣子:

afile = open("Random.txt", "w") 

for i in range(int(input('How many random numbers?: '))): 
    line = str(random.randint(1, 100)) 
    afile.write(line) 
    print(line) 

afile.close() 

如果你擔心用戶可能輸入一個非整數,你可以使用一個try/except塊。

afile = open("Random.txt", "w") 

try: 
    for i in range(int(input('How many random numbers?: '))): 
     line = str(random.randint(1, 100)) 
     afile.write(line) 
     print(line) 
except ValueError: 
    # error handling 

afile.close() 

什麼你試圖做通過afile,當時有沒有一行是迭代,所以它實際上並沒有做任何事情。

+0

感謝您的答覆,當我跑的代碼,我得到這個錯誤文件「C:/Users/Owner/Desktop/ei8069_Assignment_Q1.py」 19行,在 afile.write(線) 類型錯誤:預期字符緩衝區對象我該怎麼做?它似乎並沒有像我想要的文件寫入... – 2013-02-16 07:08:35

+0

@ThomasJones看到編輯 – Volatility 2013-02-16 07:12:41