#python
Вопрос:
как суммировать числа, прикрепленные к словам в текстовом файле(не разделяя их на цифры) в python? (пример: «a23 B55» — ответ = 78) вот что я сделал, но это не совсем правильно:
def rixum(file_name): f = open(file_name,'r') line = f.readline() temp = line.split() res = [] for word in temp: i = 0 while i lt; len(word)-1: if word[i].isdigit(): res.append(int(word[i:])) print(sum(res)) f.close() return sum(res)
Комментарии:
1. В каком смысле «это не совсем правильно»?
2. вы используете цикл while, но
i
он никогда не меняется
Ответ №1:
Это сработало для меня:
import re string = 'F43 n90 i625' def summ_numbers(string): return sum([int(num) for num in re.findall('d ', string)]) print(summ_numbers(string))
Выход:
758
Ответ №2:
На самом деле вам не нужно составлять список — вы можете просто накапливать значения по мере продвижения (строка за строкой).:
def rixum(filename): with open(filename) as data: for line in data: total = 0 for token in line.split(): for i, c in enumerate(token): if c.isdigit(): total = int(token[i:]) break print(total)