Как заменить '-' на оператор -, а '+' на оператор + (на 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)