在Python中添加列表中的数字

时间:2014-02-27 05:28:20

标签: python loops

基本上我正在尝试完成一个读取文件。我制作了“make”文件,它将生成10个随机数并将其写入文本文件。这是我到目前为止对“阅读”文件...

def main():
    infile = open('mynumbers.txt', 'r')
    nums = []
    line = infile.readline()

    print ('The random numbers were:')
    while line:
        nums.append(int(line))
        print (line)
        line = infile.readline()

    total = sum(line)  
    print ('The total of the random numbers is:', total)

main()

我知道它不完整,我还是初学者,这是我对计算机编程或python的第一次介绍。基本上我必须使用循环来收集mynumbers.txt中列出的所有数字的总和。任何帮助将不胜感激。这一直在把我推向一堵墙。

4 个答案:

答案 0 :(得分:2)

你不需要在Python中手动迭代(毕竟这不是C):

nums = []
with open("mynumbers.txt") as infile:
    for line in infile:
        nums.append(int(line))

现在你只需要得到总和,但nums当然不是line

total = sum(nums)

答案 1 :(得分:1)

通常的单行:

total = sum(map(int, open("mynumbers.txt")))

它会生成一个整数列表(虽然非常暂时)。

答案 2 :(得分:0)

虽然我会按照上面的Tim回答,如果你想使用readlines方法,这是另一种方法

# Open a file
infile = open('mynumbers.txt', 'r')

sum = 0
lines = infile.readlines()
for num in lines:
    sum += int(num)

print sum

答案 3 :(得分:0)

只是另一种解决方案......: - )

with open("x.txt") as file:
    total = sum(int(line) for line in file)

此解决方案将生成器对象的“结果”相加,因此它不是内存密集型,而是短而优雅(pythonic)。