所以我尝试浏览其他帖子,甚至在求助之前询问了一位朋友。我有一个家庭作业,要求我用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.我非常感谢任何指针和指导,以确定我应该做什么来解决这个问题。非常感谢你!
答案 0 :(得分:1)
你的缩进是错误的。您需要在infile.write(str(numbers))
前面放置选项卡以确保它在每个循环中执行。否则你最后只写下最后一个数字。
您可能还想在数字之间写一些分隔符。
最后,您可能只想进行一次调用以生成随机数,如下所示:
numpy.random.random_integers(1,115, howMany)
答案 1 :(得分:-1)
问题是您在numbers
循环中覆盖了for
:
for n in range(1,howMany):
numbers = random.randint(1,115)
相反,您希望制作一个名为numbers
的列表:
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()