随机数文件写入器

问题描述 投票:0回答:3

使用说明:

  • 编写一个程序,将一系列随机数写入文件。
  • 每个随机数应在 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. 读取文件后,什么也没有。

虽然我认为设置没问题,但执行起来似乎总是卡住。

python random numbers
3个回答
7
投票

摆脱

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
的行,当没有的时候,所以它实际上没有做任何事情。


0
投票
import random
ff=open("file.txt","w+")
for _ in range(100):
    ff.write(str(random.randrange(500,2000)))
    ff.write("\n")
ff.seek(0,0)``
while True:
    aa=ff.readline()
    if not aa:
        print("End")
        break
    else:
        if int(aa)%2==0:
            print(int(aa))
           
ff.close()

0
投票

随机导入

randon=open("random.txt","w")

f=int(input("输入值"))

对于范围 (f) 内的 i: i=随机.randint(1,500) 随机写入(str(i)) 打印(一)

randon.close()``

© www.soinside.com 2019 - 2024. All rights reserved.