Step 4 (S-12076)

From Stepik Wiki
Jump to: navigation, search

Step on Stepik: https://stepik.org/lesson/2414/step/4


Еще немного попрактикуемся в задачах на условия. Рассмотрим следующую задачу: пользователь вводит два числа и мы должны вывести результат деления первого числа на второе, либо вывести сообщение о том. что деление невозможно.

Как будет выглядеть решение? Мы читаем два числа, далее проверяем - если второе число не 0, то в таком случае числа можно разделить и вывести результат. Иначе, вывести сообщение о том, что деление невозможно.

Давайте запустим IPython notebook. И в первых двух строчках нашей программы считаем два числа.

S-12076-1.png

Далее можем попробовать вывести сразу результат деления a на b. Это будет работать во всех случаях, кроме случая когда b равно 0. Проверим: введем числа 5 и 10, программа выведет 0.5. Теперь введем 5 и 0.

S-12076-2.png

Программа завершится сообщением от ошибке.

S-12076-3.png

Исправим код, чтобы ошибки не возникало. Перед тем как делить, будем проверять возможно ли деление. Действие print(a/b) будем выполнять лишь в том случае, если b не равно 0.

S-12076-4.png

В этом случае, если второе число будет равно 0, программа просто ничего не выведет. Исправим это. Добавим в код else и сообщение о невозможности деления:

S-12076-5.png

Теперь если мы запустим программу с числами 5 и 0, то увидим сообщение. Немного модифицируем программу. Если пользователь введет числа при которых деление не возможно, программа попросит его ввести второе число еще раз. Добавим в блок, следующий за else повторное чтение числа и вывод результата деления:

S-12076-6.png

Проверим: введем числа 4 и 0, после сообщения введем 2, программа выведет 2.0.

S-12076-7.png

Все работает. Постараемся обмануть программу. Дважды введем 0. Программа завершится ошибкой.

S-12076-8.png

Исправим это поведение, пусть в случае если пользователь второй раз ввел 0, программа выведет сообщение о том, что пользователь не справился. Для этого добавим внутри блока else еще одно условие:

S-12076-9.png

Проверяем, программа работает!