Напишите программу, которая вычисляет выражение, состоящее из трех чисел и двух знаков( допускается только + и -) выражение вводится как символьная строка, все числа целые. Пример: введите выражение: 12-3+45 ответ:54 без eval.
Ответы
Ответ:
s=input('введите выражение: ')
for i in range(len(s)):
if s[i]=='+' or s[i]=='-':
c1=int(s[:i])
s=s[i:]
break
for i in range(1,len(s)):
if s[i]=='+' or s[i]=='-':
c2=int(s[1:i])
c3=int(s[i+1:])
break
if s[0]=='+':
r=c1+c2
else:
r=c1-c2
if s[i]=='-':
r=r-c3
else:
r=r+c3
print('ответ:',r)
Объяснение:
в первом цикле со счётчиком перебираем все символы введённой строки (начиная с 0), пока не встречаем + или -, как только встретили находим первое число используя срез строки и перевод строки в целое число, изменяем исходную строку отбрасывая первое число используя срез, затем прерываем цикл
во втором цикле со счётчиком перебираем все символы изменённой исходной строки (начиная с 1, т.к. в 0 символе лежит знак), пока не встречаем + или -, как только встретили находим второе и третье числа используя срез строки и перевод строки в целое число, затем прерываем цикл
используя условный оператор if, проверяем какой знак находится между первым и вторым числом, затем проводим вычисления в зависимости от найденного знака
используя условный оператор if, проверяем какой знак находится между вторым и третьим числом, затем проводим вычисления в зависимости от найденного знака
выводим результат