Как из многострочного текста вытянуть значение python 3.x

У меня есть большой массив текста со значениями , к примеру План - 200 , факт - 300. Нужно чтобы программа распознавала слово "План" и возвращала значение 200 в переменную plan[] списком

далее для наглядности как это будет выглядеть:

artem = input('Введите Ваш отчет: ')
semen = input('Введите Ваш отчет: ')
kolya = input('Введите Ваш отчет: ')

def plan(x):
    if 'План' in x:
        plan[200] #Мне нужно чтобы в этот список попадало значение Плана из строки (оно может быть разным)

plan(artem)
plan(semen)
plan(kolya)

def kalkulator (a,b,c,d,e):
    return a + b + c + d + e

print(kalkulator(plan))

#отчет будет прилетать из вне в виде скопированного сообщения из вайбера вот в таком виде одним сообщением через энтер

План - 200
Факт- 216

Напитки план-10 Напитки факт-4

Визиты - 20 Заказы - 19

Эффективность - 95% x - 9.9

w -3,5

q -4,5

gop - 44,16

#так же столкнулся с ошибкой что так как текст написан через энтер при ctl-c ctrl-v терминал распознает только первую строчку


Ответы (1 шт):

Автор решения: Tehnorobot
  1. Не называйте имена переменных именами функций, иначе питон будет их путать

  2. Я предложу свой вариант решения, только формат записи должен быть в едином варианте. Если вы пишите, что входными данными могут быть: word - word word- wors, Word-Word\nword-word, то придержитесь одного, например: word- word\nword - word, или если одна пара: word-word.

artem = input('Введите Ваш отчет: ') '''План - 200
Факт - 216''' 

semen = input('Введите Ваш отчет: ') '''
План - 500
Факт- 219
Напиток-300
'''
kolya = input('Введите Ваш отчет: ') '''План - 200''' 

plan_list = []


def plan(x):
    if 'План' in x:
        for val in x.split('\n'):
                if val.split('-')[0].strip() == 'План':
                    plan_list.append(int(val.split('-')[1].strip()))
                    
    return plan_list


plan(artem)
plan(semen)
plan(kolya)

print(sum(plan_list)) # можно так(сумма значений в списке) 

def kalkulator(vals): # можно так(через функцию) 
    sum_nums = 0
    for num in vals:
        sum_nums += num
    return sum_nums


print(kalkulator(plan_list))

Вывод:

900
900
→ Ссылка