После вывода ответа, прибавить/вычесть из него новое число

Есть вот такой код, мне нужно чтобы после вывода ответа, я мог прибавить/вычесть из него новое число.

Возможно ли такое сделать?

while True:
    try:
        num = input('>> ')
        if "+" in num:
            num = [int(n) for n in num.split("+")]
            x = int(num[0])
            y = int(num[1])
            otv=x+y
            print('>>',otv)
        elif "-" in num:
            num = [int(n) for n in num.split("-")]
            x = int(num[0])
            y = int(num[1])
            otv=x-y
            print('>>',otv)
        else:
           print('Введите больше данных')
    except ValueError:
        print("ERROR : Введите числа")

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

Автор решения: Zhihar

можно в самом начале выше while инициировать переменную otv:

otv = 0

а дальше делать так:

otv += x+y

или

otv += x-y

P.S.

а зачем вы x и у переводите в целые числа, если вы их выше в списке уже перевели в целые числа?

otv = 0
while True:
    try:
        num = input('>> ')
        if "+" in num:
            num = [int(n) for n in num.split("+")]
            otv+=x+y
            print('>>',otv)
        elif "-" in num:
            num = [int(n) for n in num.split("-")]
            otv+=x-y
            print('>>',otv)
        else:
           print('Введите больше данных')
    except ValueError:
        print("ERROR : Введите числа")

P.P.S.

кстати код

num = [int(n) for n in num.split("+")]

можно также сделать по другому:

num = list(map(int, num.split("+")))

или

num = [*map(int, num.split("+"))]

чуть более короткая запись

→ Ссылка
Автор решения: S. Nick

Попробуйте так:

z = 0

while True:
    try:
        num = input('>> ')

        if not num:
            break        
        
        if "+" in num:
            num = [int(n) if n else 0 for n in num.split("+")]
            x = int(num[0])
            y = int(num[1])
            otv = z + x + y
            print('>>',otv)
        elif "-" in num:
            num = [int(n) if n else 0 for n in num.split("-")]
            x = int(num[0])
            y = int(num[1])
            otv = z + x - y
            print('>>', otv)
        else:
           print('Введите больше данных')
           otv = 0
        z = otv        
    except ValueError:
        print("ERROR : Введите числа")

введите сюда описание изображения

→ Ссылка
Автор решения: SergFSM

Как вариант можно вместо метода split использовать partition. Он возвращает кортеж из трех строк:

otv = 0
while True:
    try:
        num = input('>> ')
        if not num: break
        if "+" in num:
            x,_,y = num.partition('+')
            otv += (int(x or 0) + int(y))
        elif "-" in num:
            x,_,y = num.partition('-')
            otv += (int(x or 0) - int(y))
        else:
            print('Введите больше данных')
        print('итог: ', otv)
    except ValueError:
        print("ERROR : Введите числа")

UPD

чтобы избавиться от повторения кода (DRY!) можно переписать его так:

otv = 0
while True:
    try:
        num = input('>> ')
        if not num: break
        for i in '+-':
            if i in num: 
                x,o,y = num.partition(i)
                otv += (int(x or 0) + int(o+y))
                print('итог: ', otv)
                break
        else: print('Введите больше данных')
    except ValueError:
        print("ERROR : Введите числа")
→ Ссылка
Автор решения: ПИТОНИСТ версия-3-8

Попробуйте так:

ch=0
while True:
    print(f'Сейчас число равно {ch}')
    num=input('>>> ')
    try:
        if '+' in num: ch+=int(num.split('+')[1])
        elif '-' in num: ch-=int(num.split('-')[1])
        else: print('Введите хоть какой-то знак!')
    except:
        print('ERROR: вы ввели что-то не то!')

Скриншот

→ Ссылка