1

指示:

  • 编写一个程序,将一系列随机数写入文件。
  • 每个随机数应在 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 回答 1

6

摆脱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,当没有时,它实际上并没有做任何事情。

于 2013-02-16T06:49:04.740 回答