Написать программу — калькулятор с переменными и обработкой ошибок. Программа построчно вводит команды калькулятора, и если надо, выводит результат их выполнения или ошибку.
- Пробелы в строках игнорируются
Команда, начинающаяся на '#' — комментарий, такие команды игнорируются
Команда вида Идентификатор = выражение задаёт переменную Идентификатор
идентификатор определяется стандартно: «произвольная последовательность букв, цифр и символов подчёркивания не начинающаяся с цифры»
Если слева от "=" стоит не идентификатор, выводится "Assignment error"; всё, что справа, игнорируется, присваивания не происходит
Команда вида выражение выводит значение выражения.
- Выражение — это арифметическое выражение, состоящее из
целых чисел
- уже определённых идентификаторов
- круглых скобок
действий +, -, *, /, % и унарных + и -.
Деление целочисленное
Любое другое выражение приводит к выводу ошибки "Syntax error"
Если выражение нельзя вычислить, потому что в нём встречаются неопределённые переменные, выводится ошибка "Name error"
Если выражение нельзя вычислить по какой-то другой причине, выводится "Runtime error"
# Ошибок нет 234 10/3 A = 3*(2+(1-7)%5) A+100 + ++ - -- - + - - 0 # Начинаются ошибки 7*B 3=3 A=4=5 A() A/0
Подсказка 1: удобно пользоваться eval() со всеми тремя параметрами
есть такая в нашем случае неприятная штука — __builtins__, её тоже следует перебить или как-то поигнорить
- Подсказка 2: кое-какие иные конструкции Python тоже являются синтаксическими ошибками
234 3 118 0 Name error Assignment error Syntax error Syntax error Runtime error
- В этом примере сначала приведён ввод, затем вывод (так и будет при тестировании), но если запустить вручную они перемешиваются
- Я делал так:
- и в другом окне