编写一个程序,将一系列随机数写入文件。
每次执行时要生成的数字计数 随机介于1到20之间。
生成的实际数字将是1和1之间的随机整数 100
程序的每次运行都会显示一条消息,指示 写入文件的新数字的数量
程序的每次运行都会显示一条消息,指示 从文件中读取的记录数
您无法计算或假设知道有多少记录
文件。使用截止日期方法循环到EOF
。
您的文件读取和文件写入都必须是函数(2个函数, 每个一个),每个都从main调用。
您必须使用w
模式对文件进行第一次写入,并a
或
每次w
模式。
用户将确定是附加到现有文件还是写入新文件 文件
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()
答案 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而不是当前行中的数字,以获得生成的总数。