Сложение и вычитание строки на ввод

7thAi

Новичок
Пользователь
Июн 19, 2023
4
0
1
1. Windows 10
2. Python 3.

Всем добрый день. Помогите пожалуйста разобраться с задачей. На ввод дается строка с числами и операторами +/- (без скобок). Программа должна уметь считать эту строку, длина строки может быть любая. Как видите, я расписал код без учета количества символов в строке, и как раз на этом моменте у меня случился затык.

Python:
data = input()
result = list(data)

for i in result:
    if '+' in i:
        int(result[0]) + int(result[2])
    else:
        int(result[0]) - int(result[2])

print(i)
 

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
2 661
474
83
если вы используете списки, то наверное лучше так
Python:
data = input("Введите выражение с пробелами (пример: 5 + 5): ").split()
result = 0

for index, value in enumerate(data):
    if result == 0:
        if "+" in value:
            try:
                result = int(data[index - 1]) + int(data[index + 1])
            except ValueError:
                print("Неверное выражение!")
        if "-" in value:
            try:
                result = int(data[index - 1]) - int(data[index + 1])
            except ValueError:
                print("Неверное выражение!")
    else:
        if "+" in value:
            try:
                result += int(data[index + 1])
            except ValueError:
                print("Неверное выражение!")
            except IndexError:
                result += int(data[index])
        if "-" in value:
            try:
                result -= int(data[index + 1])
            except ValueError:
                print("Неверное выражение!")
            except IndexError:
                result -= int(data[index])

print(result)
 

7thAi

Новичок
Пользователь
Июн 19, 2023
4
0
1
если вы используете списки, то наверное лучше так
Python:
data = input("Введите выражение с пробелами (пример: 5 + 5): ").split()
result = 0

for index, value in enumerate(data):
    if result == 0:
        if "+" in value:
            try:
                result = int(data[index - 1]) + int(data[index + 1])
            except ValueError:
                print("Неверное выражение!")
        if "-" in value:
            try:
                result = int(data[index - 1]) - int(data[index + 1])
            except ValueError:
                print("Неверное выражение!")
    else:
        if "+" in value:
            try:
                result += int(data[index + 1])
            except ValueError:
                print("Неверное выражение!")
            except IndexError:
                result += int(data[index])
        if "-" in value:
            try:
                result -= int(data[index + 1])
            except ValueError:
                print("Неверное выражение!")
            except IndexError:
                result -= int(data[index])

print(result)
Спасибо
 

Форум IT Специалистов