2016-10-27 70 views
0

我的程序應該驗證n是一個正整數。如果不是,則應返回字符串「輸入正整數」。如果n是正數,它應該創建一個文件,其名稱包含n個-1000到1000之間的整數(隨機)。我想這是你如何打開文件,但我很無知,不知道下一步該怎麼做。如何使用n個整數在-1000和1000之間創建python文件?

import random 
    def createFile(myFile,n): 
     myFile="fileName" 
     outFile=open(myFile,"w") 

     if n<0: 
      return "Enter a positive integer." 
+0

你的意思-1000和1000之間的隨機數? – furas

+0

我不認爲你應該從這個函數返回一個字符串...另外,你有沒有嘗試過使用['random'](https://docs.python.org/3/library/random.html)模塊? –

+0

'myFile =「fileName」'覆蓋你用'createFile(「some_filename」)使用的文件名' – furas

回答

3

使用random.samplerange提取n個值。用列表理解將整數轉換爲字符串,添加換行符,並將其傳遞給writelines方法。

import random 
def createFile(myFile,n): 

    with open(myFile,"w") as outFile: 
     outFile.writelines(["{}\n".format(x) for x in random.sample(range(-1000,1001),n)]) 

createFile("foo.txt",45) 
0

好吧...的第一件事是用input(在Python3)或raw_input(在Python2)播放,才能向用戶詢問一些。我建議你嘗試一下,輸入一些負數和一個正數。你甚至可以嘗試輸入一些東西,不能轉換爲int看到異常情況發生:

number = -1 
while number < 0: 
    number_string = input("Enter a possitive number. ") 
    number = int(number_string) 
print("Yay! Got a positive number: %s" % number) 

(即代碼段用於Python3,在Python2,你應該取代input通過raw_input

一旦你在number變量的正數,你可以用它來遍歷,創建(寫作)在你的文件的新條目:

with open("./stack_046.txt", "w") as f: 
    while number > 0: 
     random_generated = random.randint(-1000, 1000) 
     f.write(str(random_generated)) 
     f.write("\n") 
     number -= 1 

如果你不想使用規範IAL關鍵字with(你應該,這是非常值得您調查what it does),你總是可以做:

outFile = open("./stack_046.txt", "w") 
while number > 0: 
    random_generated = random.randint(-1000, 1000) 
    outFile.write(str(random_generated)) 
    outFile.write("\n") 
    number -= 1 
outFile.close() 
相關問題