随机数文件编写器

时间:2013-02-16 06:45:34

标签: python random numbers

说明:

  • 编写一个程序,将一系列随机数写入文件。
  • 每个随机数应在1到100之间。
  • 应用程序应该让用户指定文件将保留的随机数。

这就是我所拥有的:

import random

afile = open("Random.txt", "w" )

for line in afile:
    for i in range(input('How many random numbers?: ')):
         line = random.randint(1, 100)
         afile.write(line)
         print(line)

afile.close()

print("\nReading the file now." )
afile = open("Random.txt", "r")
print(afile.read())
afile.close()

一些问题:

  1. 它不会根据用户设置的范围在文件中写入随机数。

  2. 一旦打开文件就无法关闭。

  3. 读取文件时没有。

  4. 虽然我认为设置没问题,但似乎总是卡在执行上。

1 个答案:

答案 0 :(得分:5)

摆脱for line in afile:,取出其中的内容。此外,因为input在Python 3中返回一个字符串,所以首先将其转换为int。当你必须写一个字符串时,你正试图写一个整数到文件。

这应该是这样的:

afile = open("Random.txt", "w" )

for i in range(int(input('How many random numbers?: '))):
    line = str(random.randint(1, 100))
    afile.write(line)
    print(line)

afile.close()

如果您担心用户可能输入非整数,您可以使用try/except块。

afile = open("Random.txt", "w" )

try:
    for i in range(int(input('How many random numbers?: '))):
        line = str(random.randint(1, 100))
        afile.write(line)
        print(line)
except ValueError:
    # error handling

afile.close()

你试图做的是迭代afile的行,当没有时,所以它实际上没有做任何事情。