Задать вопрос

Калькулятор на Python?

Я решил проверить свои знания на Питоне и решил написать код, который поможет с некоторыми арифметическими операциями пользователю.
a = int(input("Введите число а: "))
b = int(input("Введите число b: "))
c = input('''Введите знак операции:
    "+" = плюс
    "-" = минус
    "*" = умножить
    "/" = разделить
    "^" = возвести в степень
''')
d = 0
if c == '+':
    d = a + b
    print(f"{a} {c} {b} = {d}")
elif c == '-':
    d = a - b
    print(f"{a} {c} {b} = {d}")
elif c == '*':
    d = a * b
    print(f"{a} {c} {b} = {d}")
elif c == '/':
    d = a / b
    print(f"{a} {c} {b} = {d}")
elif c == '^':
    d = a ** b
    print(f"{a} {c} {b} = {d}")

Знаю, это очень простой код, тут нет ничего такого, что могло бы показать вам мои "Суперзнания", но я всё-же решил показать его вам, чтобы вы, по возможности, давали мне советы, где убрать, где добавить, а где приполировать.
  • Вопрос задан
  • 403 просмотра
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 3
phaggi
@phaggi
лужу, паяю, ЭВМы починяю
У вас несколько раз повторяется одинаковая строка. Подумайте, как сделать, чтобы она не повторялась.
Также надо добавить обработку неверного ввода (не чисел и не мат.операторов) и обработку деления на нуль.
Ответ написан
Комментировать
@101-s
есть интересная команда exec, она упростит код
метод Python exec() выполняет переданный набор кода в виде строки.

cmd = r'print({} {} {})'.format(a, z, b)
exec(cmd)
Ответ написан
@PavelMos
Можно вместо elif использовать относительно недавно добавленную в Питоне конструкцию case
match c:
    case "+":
        d = a + b
        print(f"{a} {c} {b} = {d}")
    case '-':
        d = a - b
        print(f"{a} {c} {b} = {d}")
    case '*':
        d = a * b
        print(f"{a} {c} {b} = {d}")
    case '/':
        d = a / b
        print(f"{a} {c} {b} = {d}")
    case '^':
        d = a ** b
        print(f"{a} {c} {b} = {d}")


По-русски например тут
https://habr.com/ru/company/otus/blog/664662/
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы