2016-02-24 4 views
-12

Я пытаюсь найти сумму всех чисел во входном файле, но она не работает. Вот мой код до сих пор:Найдите сумму чисел во входном файле

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 
+0

Вы хотите, чтобы общее количество всех номеров или общей суммы каждой линии? – MarkyPython

+0

всех номеров. но моя программа идет не так в первом цикле, где она хранит числа в списке y –

+0

Проверьте мой ответ, и вы увидите, что вам не нужен этот цикл. Просто используйте 're.findall ('[0-9] +', fh)'. – MarkyPython

ответ

1

Это должно сделать:

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) 
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 
Смежные вопросы