Написать программу — калькулятор с переменными и обработкой ошибок. Программа построчно вводит команды калькулятора, и если надо, выводит результат их выполнения или ошибку.
- Пробелы в строках игнорируются
Команда, начинающаяся на '#' — комментарий, такие команды игнорируются
Команда вида Идентификатор = выражение задаёт переменную Идентификатор
идентификатор определяется стандартно: «произвольная последовательность латинских букв, цифр и символов подчёркивания не начинающаяся с цифры»
Если слева от "=" стоит не идентификатор, выводится "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() с двумя параметрами
- Подсказка 2: кое-какие иные конструкции Python являются синтаксическими ошибками для калькулятора и наоборот (например, ключевые слова)
Спойлер:
234 3 118 0 Name error Assignment error Syntax error Syntax error Runtime error
- В этом примере сначала приведён ввод, затем вывод (так и будет при тестировании), но если запустить вручную они перемешиваются
- Я делал так:
- и в другом окне