Предмет: Информатика, автор: pershinnikitka

Напишите программу, которая вычисляет выражение, состоящее из трех чисел и двух знаков( допускается только + и -) выражение вводится как символьная строка, все числа целые. Пример: введите выражение: 12-3+45 ответ:54 без eval.

Ответы

Автор ответа: valgrisa
5

Ответ:

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, проверяем какой знак находится между вторым и третьим числом, затем проводим вычисления в зависимости от найденного знака

выводим результат


yajokakaka: Вы можете пожалуйста помочь с моим последним вопросом??(. (он по информатике)
Похожие вопросы
Предмет: Окружающий мир, автор: викон3
Предмет: Английский язык, автор: dghcickse12052000
Предмет: История, автор: mashaqwert19