Создай консольное приложение «Калькулятор». Приложение должно читать из консоли введенные пользователем строки, числа, арифметические операции, проводимые между ними, и выводить в консоль результат их выполнения. Калькулятор можно реализовать обычными функциями либо использовать структуру с методами, здесь это не принципиально.
python
class Calculator:
def __init__(self):
self.operations = {
'+': self.addition,
'-': self.subtraction,
'*': self.multiplication,
'/': self.division
}
def addition(self, x, y):
return x + y
def subtraction(self, x, y):
return x - y
def multiplication(self, x, y):
return x * y
def division(self, x, y):
try:
return x / y
except ZeroDivisionError:
return "Ошибка: деление на ноль"
В конструкторе класса `Calculator` создается словарь `operations`, где ключами являются арифметические операции ('+', '-', '*', '/'), а значениями - соответствующие методы класса, реализующие эти операции.
Затем реализуем метод `calculate`, который будет считывать введенное пользователем выражение, разбирать его на операнды и операцию, и выполнять соответствующую операцию с помощью словаря `operations`:
python
def calculate(self, expression):
operands = expression.split()
if len(operands) != 3:
return "Ошибка: некорректное выражение"
try:
x = float(operands[0])
y = float(operands[2])
except ValueError:
return "Ошибка: некорректные операнды"
operation = operands[1]
if operation not in self.operations:
return "Ошибка: некорректная операция"
return self.operations[operation](x, y)
В методе `calculate` сначала разбиваем введенное выражение на операнды с помощью метода `split()`. Если длина списка операндов не равна 3, то выражение некорректно и возвращаем ошибку. Затем пытаемся преобразовать операнды в числа типа float, и если это невозможно (например, при вводе некорректного числа), возвращаем ошибку.
Затем получаем операцию из списка операндов (`operands[1]`) и проверяем, содержится ли она в словаре `operations`. Если нет, возвращаем ошибку.
В конечном итоге, возвращаем результат выполнения соответствующего метода, которому передаем операнды `x` и `y`.
Теперь можем написать код для основной программы, которая будет считывать ввод пользователя, вызывать метод `calculate` и выводить результат:
python
calculator = Calculator()
while True:
expression = input("Введите выражение (число операция число): ")
if expression == "exit":
break
result = calculator.calculate(expression)
print(result)
В этом коде создается экземпляр класса `Calculator`, затем осуществляется бесконечный цикл, в котором пользователь может вводить выражения. Если пользователь вводит "exit", то цикл прерывается.
Для каждого введенного выражения вызывается метод `calculate`, который возвращает результат вычисления выражения. Этот результат выводится на экран с помощью функции `print`.
Теперь пользователь может запускать программу и вводить выражения в формате "число операция число" (например, "2 + 3"). Программа выполнит соответствующую операцию и выведет результат. В случае некорректного ввода или деления на ноль будет выведена ошибка.
Пример выполнения программы:
Введите выражение (число операция число): 2 + 3
5.0
Введите выражение (число операция число): 10 * 5.5
55.0
Введите выражение (число операция число): 7 / 0
Ошибка: деление на ноль
Введите выражение (число операция число): abc + 3
Ошибка: некорректные операнды
Введите выражение (число операция число): exit
Таким образом, создано консольное приложение "Калькулятор", которое считывает введенные пользователем строки, числа и арифметические операции, проводит операции между числами и выводит результат их выполнения.Нажимая «Регистрация» или «Войти через Google», вы соглашаетесь с Публичной офертой, даете Согласие на обработку персональных данных, а также подтверждаете что вам есть 18 лет
Нажимая «Регистрация» или «Войти через Google», вы соглашаетесь с Публичной офертой, даете Согласие на обработку персональных данных, а также подтверждаете что вам есть 18 лет