Форум сайта python.su
Буду благодарен, если объясните почему при деление на 0 выходит два раза надпись “Деление на 0!”
Задача:
Напишите простой калькулятор, который считывает с пользовательского ввода три строки: первое число, второе число и операцию, после чего применяет операцию к введённым числам (“первое число” “операция” “второе число”) и выводит результат на экран.
Поддерживаемые операции: +, -, /, *, mod, pow, div, где
mod — это взятие остатка от деления,
pow — возведение в степень,
div — целочисленное деление.
Если выполняется деление и второе число равно 0, необходимо выводить строку “Деление на 0!”.
Обратите внимание, что на вход программе приходят вещественные числа
МОЕ РЕШЕНИЕ
A = float(input()) B = float(input()) C = input() if C == '+': print(A + B) if C == '-': print(A - B) if C == '*': print(A * B) if C == '/' and B != 0: print(A / B) else: print('Деление на 0!') if C == 'mod' and B != 0: print(A % B) else: print('Деление на 0!') if C == 'div': print(A // B) if C == 'pow': print('A ** B')
Отредактировано Maratello (Март 28, 2018 09:01:04)
Офлайн
def f(): A = float(input()) B = float(input()) C = input() if C == '+': print(A + B) elif C == '-': print(A - B) elif C == '*': print(A * B) elif C == '/': if B != 0: print(A / B) else: print('Деление на 0!') elif C == 'mod': if B != 0: print(A % B) else: print('Деление на 0!') elif C == 'div': print(A // B) elif C == 'pow': print(A ** B) f()
Отредактировано py.user.next (Март 28, 2018 10:52:23)
Офлайн