查找输入文件中数字的总和[重复]

Posted

技术标签:

【中文标题】查找输入文件中数字的总和[重复]【英文标题】:Find the sum of the numbers in an input file [duplicate] 【发布时间】:2016-06-06 23:07:01 【问题描述】:

我正在尝试查找输入文件中所有数字的总和,但它不起作用。到目前为止,这是我的代码:

import re

fname = raw_input("Enter name of the file: ")

fh = open(fname)
for i in fh:
     y = re.findall('[0-9]+', i)

print y

n=0
for p in y:
      n = n + int(p)

print n

【问题讨论】:

你想要所有数字的总和还是每行的总和? 所有数字。但是我的程序在第一个 for 循环中出错了,它将数字存储在 y 列表中 检查我的答案,你应该会发现你不需要那个循环。只需使用re.findall('[0-9]+',fh) 您的文件是什么样的?每行一个号码,没有其他号码?带文字的数字? 请注意,最好在使用文件后关闭文件(循环后fh.close()),或者更好的是使用with 语句,以便自动处理文件关闭。 【参考方案1】:

您的代码将有效,除非您错过了两件事。 1) 当您打开文件时,您必须指定要以读取模式打开它。 2) 您必须阅读该文件。这是正确的代码:

import re

fname=raw_input("Enter name of the file: ")
fh=open(fname, "r")
data = fh.read()

y = re.findall('[0-9]+',data)
n=0

for p in y:
      n = n + int(p)    

print n

【讨论】:

【参考方案2】:

应该这样做:

import re
fname=raw_input("Enter name of the file: ")
with open(fname, 'r') as f: lines = f.readlines()
print map(lambda line: sum([int(i) for i in re.findall('[0-9]+', line)]), lines)

【讨论】:

以上是关于查找输入文件中数字的总和[重复]的主要内容,如果未能解决你的问题,请参考以下文章

查找并打印总和为 100 的每个唯一组合,并返回 1 到 100 之间数字的所有此类组合的计数 [重复]

[PY4E-在干草堆中查找数字[重复]

查找具有给定总和的数字列表的所有组合

如何在python中重复找到每个T数字的数字总和的数字总和,直到它成为一个数字?

LeetCode-回溯组合总和

LeetCode——39. 组合总和