对i循环中的数字进行随机汇总

时间:2018-10-18 18:13:48

标签: python python-3.x list loops sum

我创建了一个程序,该程序生成一个用户选择的数字列表,介于1到500之间。然后,该程序将该列表写入文件,读取文件,并列出所有数字。我需要对数字求和并显示计数。这是我的代码...

numberFile = open("random_number.txt", "w" )

for i in range(int(input("How many random numbers?: "))):
   numbers = str(randint(1, 500))
   numberFile.write(numbers)
   print(numbers)


numberFile.close()

非常感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

您可以将其添加到您的代码中。

numberFile = open("random_number.txt", "r" )
sum = 0
for i in numberFile:
    sum += int(i)

print(sum)

首先,sum为0。程序读取每个值并将该值加到sum。

答案 1 :(得分:0)

如果您想使用 pythonic 密码,可以用2 * 2行(+1行导入)执行此操作:

import random

# create file
with open("t.txt","w") as nf:
    nf.write( '\n'.join(map(str,random.choices(range(1,501),
                                               k=int(input("How many numbers?"))))))

第一个使用输入的值,将其设为int,将其用作random.choices()的“多少”参数,该参数从给定的range (1,501)返回尽可能多的随机数,然后将其馈送到{ {3}}使其成为字符串,以便map()可以将其中的一大串写入文件。

# read / sum file
with open("t.txt","r") as nf:
    print(sum(map(int,(x.strip() for x in nf.readlines() if x.strip()) ) ) )

这会将整个文件读取为行列表,剥离换行符,将其转换为int并对它们求和。 (请参见join()


输出生成的内容:

with open("t.txt","r") as nf: 
    print(nf.read())

总和:

2371

输出文件:

320
13
138
112
369
339
447
44
211
15
110
253