Прикреплённый файл «vyr1.py»

Загрузка

   1 #!/usr/bin/python
   2 # coding: UTF8
   3 
   4 '''Ввести простое арифметическое выражение (без скобок) и вычислить его значение с учетом приоритета операций: 30-12/6 = 28'''
   5 
   6 import re
   7 
   8 # Используем таблицу функций
   9 # TODO: не отслежена зависимость таблицы и R1, R2
  10 Ops={   '+':    int.__add__,
  11         '-':    int.__sub__,
  12         '*':    int.__mul__,
  13         '/':    int.__div__,
  14     }
  15 
  16 S=raw_input()
  17 R1=re.compile('([+-])')
  18 R2=re.compile('([/*])')
  19 S1=R1.split(S)
  20 S1.reverse()
  21 # print "1:",S1
  22 
  23 # TODO: оформить разбор любого приоритета в виде единой функции
  24 def calc2(E):
  25     S2=R2.split(E)
  26     S2.reverse()
  27     Res=int(S2.pop())
  28     # print "2:",S2
  29     while S2:
  30         Op,Arg=S2.pop(),int(S2.pop())
  31         Res=Ops[Op](Res,Arg)
  32     return Res
  33 
  34 Res=calc2(S1.pop())
  35 while S1:
  36     Op,Arg=S1.pop(),calc2(S1.pop())
  37     Res=Ops[Op](Res,Arg)
  38 print Res
  39     

Прикреплённые файлы

Для ссылки на прикреплённый файл в тексте страницы напишите attachment:имяфайла, как показано ниже в списке файлов. Не используйте URL из ссылки «[получить]», так как он чисто внутренний и может измениться.

Вам нельзя прикреплять файлы к этой странице.