【问题标题】:Random Number File Writer随机数文件编写器
【发布时间】:2013-02-16 06:45:33
【问题描述】:

说明:

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


    【解决方案1】:

    摆脱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 的行,但实际上没有,所以它实际上并没有做任何事情。

    【讨论】:

    • 感谢您的回复,当我运行代码时,我收到此错误文件“C:/Users/Owner/Desktop/ei8069_Assignment_Q1.py”,第 19 行,在 afile.write(line ) TypeError: expected a character buffer object 我该怎么办?它似乎没有像我想要的那样写入文件......
    【解决方案2】:
    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()
    

    【讨论】:

    • 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center
    猜你喜欢
    • 2016-09-06
    • 2020-07-24
    • 1970-01-01
    • 1970-01-01
    • 2013-01-30
    • 1970-01-01
    • 1970-01-01
    • 2021-06-02
    • 1970-01-01
    相关资源
    最近更新 更多