用Python在文本文件中写入生成的数字

用Python在文本文件中写入生成的数字,python,random,numbers,Python,Random,Numbers,所以我试着浏览其他帖子,甚至在求助于这里之前问了一个朋友。我有一个家庭作业,要求我用Python创建一个程序,根据用户输入的数字生成随机数。例如,如果他们输入想要生成5个数字。。。该计划将做到这一点。现在我的问题是,我创建了以下内容: import random def main(): howMany = 0 numbers = 0 howMany = int(input('How many numbers would you like to generate?:

所以我试着浏览其他帖子,甚至在求助于这里之前问了一个朋友。我有一个家庭作业,要求我用Python创建一个程序,根据用户输入的数字生成随机数。例如,如果他们输入想要生成5个数字。。。该计划将做到这一点。现在我的问题是,我创建了以下内容:

import random

def main():
    howMany = 0
    numbers = 0


    howMany = int(input('How many numbers would you like to generate?: '))

    infile = open ('rand_write.txt', 'w')

    for n in range(1,howMany):
        numbers = random.randint(1,115)
    infile.write(str(numbers))
    infile.close()
main()

一切正常,直到它的时间,以实际获得的5个数字到一个文本文件。我不能。。。为了我的生命。。找出我做错了什么。程序写入文本文件,但只写入一个随机数,而不是5。我将非常感谢任何关于我应该如何解决这个问题的建议和指导。多谢各位

您的缩进错误。您需要在
infle.write(str(numbers))
前面放置制表符,以确保它在每个循环中都得到执行。否则你就只能写最后一个数字了

您可能还需要在数字之间写一些分隔符

最后,您可能只需要进行一次调用即可生成如下随机数:

numpy.random.random_integers(1,115, howMany)

问题是您正在覆盖
for
循环中的
数字

for n in range(1,howMany):
    numbers = random.randint(1,115)
相反,您希望创建一个名为
数字的列表,如下所示:

numbers = []
for n in range(1,howMany):
    numbers.append(random.randint(1,115))
然后使用
'\n'.join(map(str,numbers))
将其转换为字符串,然后像以前一样写入: 随机输入

def main():
    howMany = 0
    numbers = []


    howMany = int(input('How many numbers would you like to generate?: '))

    infile = open ('rand_write.txt', 'w')

    for n in range(1,howMany):
        numbers.append(random.randint(1,115))
    infile.write('\n'.join(map(str, numbers)))
    infile.close()
main()

鉴于数字被设置为整数,很难猜测原始海报的意图。此外,您对刷新的看法是错误的-默认情况下,写入磁盘时将使用系统缓冲区。谢谢,我最后用换行符修改了inflee.write行。你帮助我意识到这些数字正在被改写。然后我还注意到我的infle.write行在for循环之外,它给了我数字,就像我在文本文件中想要的那样。再次感谢您的帮助!!!