用Python在文本文件中写入生成的数字
所以我试着浏览其他帖子,甚至在求助于这里之前问了一个朋友。我有一个家庭作业,要求我用Python创建一个程序,根据用户输入的数字生成随机数。例如,如果他们输入想要生成5个数字。。。该计划将做到这一点。现在我的问题是,我创建了以下内容:用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?:
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循环之外,它给了我数字,就像我在文本文件中想要的那样。再次感谢您的帮助!!!