Написать программу — калькулятор с переменными и обработкой ошибок

«Выражение» — это произвольное выражение Python3, в котором вдобавок можно использовать уже определённые переменные (и только их). Пробелов в командах нет. Пустая команда означает конец вычислений. Калькулятор вводит и исполняет команды по одной, тут же выводя диагностику, но в тестах это выглядит как ввод последовательности строк и вывод последовательности строк.

Подсказка 1: удобно использовать второй параметр функции eval(строка, словарь): «словарь» задаёт пространство имён, в котором будет вычисляться выражение (см. вызов dir() в примере).

42
100500//33
"Qq!"*(6-2)
# Здесь ошибка
3,,5
10/(8-8)
"wer"[2]+"qwe"[1]
"wer"[7]+"qwe"[9]
1+(2+(3
a0=5
b0=7
# И здесь ошибка
12N=12
# И ещё где-то были
a0+b0*8
c=b0//2+a0
d==100
c+d
sorted(dir())

Подсказка 2: чтобы вывести текст ошибки, достаточно вывести саму ошибку.

42
3045
Qq!Qq!Qq!Qq!
invalid syntax (<string>, line 1)
division by zero
rw
string index out of range
unexpected EOF while parsing (<string>, line 1)
invalid identifier '12N'
61
invalid assignment 'd==100'
name 'd' is not defined
['__builtins__', 'a0', 'b0', 'c']

Подсказка 3: собственных исключений здесь определять не надо


CategoryHomework

LecturesCMC/PythonIntro2017/Homework_BoldCalc (последним исправлял пользователь FrBrGeorge 2017-12-05 15:02:26)