# coding=utf8

# 5. Программа запрашивает у пользователя строку чисел, разделенных пробелом.
# При нажатии Enter должна выводиться сумма чисел.
# Пользователь может продолжить ввод чисел, разделенных пробелом и снова нажать Enter.
# Сумма вновь введенных чисел будет добавляться к уже подсчитанной сумме.
# Но если вместо числа вводится специальный символ, выполнение программы завершается.
# Если специальный символ введен после нескольких чисел,
# то вначале нужно добавить сумму этих чисел к полученной ранее сумме и после этого завершить программу.

def str_to_sum(s):
    """
    Преобразует строку с список чисел до спецсимвола "*". Остальную часть строки игнорирует.
    :param s: Строка
    :return: Список чисел в строке, до спецсимсола "*".
    """
    list_of_num = []
    end = bool(s.count('*'))
    try:
        list_of_num = [float(num) for num in s.split('*', 1)[0].strip().split(' ') if num != '']
    except ValueError:
        print('Ошибка ввода данных. Результат будет проигнорирован')
        end = False
    finally:
        return sum(list_of_num), end


result_sum = 0
while True:         # Можно было бы прилепить сюда рекурсию, но как то она сюда не подходит.
    num_str = input(f'Ввдедите строку чисел. для завершения введите "*" :')
    str_sum, end = str_to_sum(num_str)
    result_sum += str_sum
    print(f'Результат сложения числе: {result_sum}')
    if end:
        break
