Программирование функции суммы на python?

#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)