我的程序应验证n是正整数。如果不是,则应返回字符串"输入正整数。"如果n为正,则应创建一个名为given的文件,该文件包含-1000到1000之间的n个整数(随机)。我认为这是你打开文件的方式,但我一无所知,不知道下一步该做什么。
import random
def createFile(myFile,n):
myFile="fileName"
outFile=open(myFile,"w")
if n<0:
return "Enter a positive integer."
答案 0 :(得分:3)
使用random.sample
从range
中提取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)
答案 1 :(得分: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
如果您不想使用特殊关键字with
(您应该这样做,并且您调查what it does非常值得),您可以随时执行以下操作:< / p>
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()