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

При каких условиях калькулятор не будет работать?

Здравствуйте, написала код на stepik.ru, код не принимается, не могу найти ошибку.

Вот задача:

Напишите простой калькулятор, который считывает с пользовательского ввода три строки: первое число, второе число и операцию, после чего применяет операцию к введённым числам ("первое число" "операция" "второе число") и выводит результат на экран.

Поддерживаемые операции: +, -, /, *, mod, pow, div, где
mod — это взятие остатка от деления,
pow — возведение в степень,
div — целочисленное деление.

Если выполняется деление и второе число равно 0, необходимо выводить строку "Деление на 0!".

Мое решение:
a = float(input())
b = float(input())
c = str(input())

if c == 'mod':
    if b == 0:
        print("Деление на 0!")
    else:
        print(a%b)
elif c == '/' or c == 'div':
    if b == 0:
        print("Деление на 0!")
    else:
        print(a/b)
elif c == 'pow':
    print(a**b)
elif c == '+':
    print(a+b)
elif c == '-':
    print(a-b)
elif c == '*':
    print(a*b)
  • Вопрос задан
  • 4879 просмотров
Подписаться 1 Простой 2 комментария
Решения вопроса 1
0xD34F
@0xD34F
Есть разница между просто делением и делением целочисленным. А вы обе команды одинаково обрабатываете.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@hellormp
# put your python code here
first_num = float(input())
second_num = float(input())
operation = input()
if operation == 'mod':
if second_num == 0:
print("Деление на 0!")
elif operation == '-':
print(first_num - second_num)
elif operation == '+':
print(first_num + second_num)
elif operation == '*':
print(first_num * second_num)
elif operation == '/':
print(first_num / second_num)
else:
print("")
Ответ написан
Комментировать
@lyabomyr
first = float(input())
second = float(input())
action = input()
operations = {"mod": "%", "div": "//", "pow": "**"}
try:
print(eval("(" + str(first) + ")" + operations.get(action, action) + str(second)))
except ZeroDivisionError:
print('Деление на 0!')
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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