Как заменить '-' на оператор -, а '+' на оператор + (на python)

Как заменить '-' на оператор -, а '+' на оператор + (на python)


Предположим, есть строка "0 - 1 + 2 - 3 + 4 - 5 + 6". Нужно выполнить/вычислить это выражение без использования функции eval().

Перебрать строку, конвертировать числа в int, сделать из неё список и т. д. я могу, а вот заменить строки оператором не получается.



Если в выражении есть только знаки + и -, то выражение можно представить как последовательность из чисел 0, -1, 2, -3, 4, -5, 6. Тогда останется их только сложить.


Решил пока вот так:

arithmetic_expression = "1-3"
add_space = arithmetic_expression.replace('+', ' + ').replace('-', ' - ')
print(add_space)
a_e = add_space.split()
print(a_e)

for v in range(len(a_e)):
    if a_e[v].isnumeric():
        a_e[v] = int(a_e[v])

print(a_e)

lst_nums = []
for i in range(len(a_e)):
    if a_e[i] == '-':
        a_e[i + 1] = -a_e[i + 1]
    if isinstance(a_e[i], int):
        lst_nums.append(a_e[i])

s = 0
for n in range(len(lst_nums)):
    s += lst_nums[n]


print(a_e)
print(lst_nums)
print(s)




Report Page