随机数文件编写和读取

时间:2015-11-02 23:32:27

标签: python python-3.x

说明

编写一个程序,将一系列随机数写入文件。

  1. 每次执行时要生成的数字计数 随机介于1到20之间。

  2. 生成的实际数字将是1和1之间的随机整数 100

  3. 程序的每次运行都会显示一条消息,指示 写入文件的新数字的数量

  4. 程序的每次运行都会显示一条消息,指示 从文件中读取的记录数

  5. 您无法计算或假设知道有多少记录 文件。使用截止日期方法循环到EOF

  6. 您的文件读取和文件写入都必须是函数(2个函数, 每个一个),每个都从main调用。

  7. 您必须使用w模式对文件进行第一次写入,并a或 每次w模式。

  8. 用户将确定是附加到现有文件还是写入新文件 文件

  9. 这是我拥有的

    import random
    
    def main():
            more = 'y'
    
            while more.lower() == 'y':
    
                    random_numbers = open('Unit 4 numbers.txt', 'w')
                    NumtoBeWr = random.randint(1, 20)
                    print(NumtoBeWr, 'numbers added to output file: ')
    
                    for count in range(NumtoBeWr):
                          number = random.randint(1, 100)
                          print(number)
                          random_numbers.write(str(number) + '\n')
    
                    random_numbers.close()
    
                    random_numbers = open('Unit 4 numbers.txt', 'r')
    
    
                    # This the code to read the file
    
                    line = random_numbers.readline()
                    number = 0
                    total = 0
    
                    while line != " ":
                            number = int(line)
    
                            line = line.rstrip('\n')
                            print(number)
                            total = total + int(line)
                            number = number + number
                            line = random_numbers.readline()
    
                            print("The total of the numbers: "+ str (total))
                            print("Total count of numbers read from file: "+ str (number))
                            more = input("Do you want to run again to write and read more numbers. (Y/N): ")
                    random_numbers.close()
    
            print("Thank for using this program")
    
    
    main()
    

    我遇到的一些问题

    1. 它没有将所有数字加在一起
    2. 它没有统计所有数字
    3. 完成程序的示例输出应如下所示:

      Sample output for the finish program should look like this:

1 个答案:

答案 0 :(得分:1)

您应该按如下方式更新while循环:

while line:
    number += int(line)
    total += 1
    line = random_numbers.readline().rstrip("\n")

print("The total of the numbers: " + str(total))
print("Total count of numbers read from file: " + str(number))
more = input("Do you want to run again to write and read more numbers. (Y/N): ")

也就是说,你应该把总计数的打印放在循环之外。此外,您应该将total增加1而不是当前行中的数字,以获得生成的总数。