В предыдущем уроке мы познакомились с конструкцией ветвления if
В сегодняшнем уроке мы более подробно разберем более сложные варианты этой конструкции.


Практический пример

Создаем на рабочем столе файл test22.py Не забываем про кодировку. Пишем в него руками следующий программный код:

# -*- coding: utf-8 -*-

yabloki = 100
zemlyanika = 50
sliva = 70

#Первый вариант составления конструкции ветвления
if yabloki < zemlyanika:
	print u"Сок будет землянично-яблочный."	
	
if zemlyanika < yabloki:
	print u"Сок будет яблочно-земляничный."


#Второй вариант составления конструкции ветвления
if yabloki < zemlyanika:
	print u"Сок будет землянично-яблочный."

else:
    print u"Сок будет яблочно-земляничный."


#Третий вариант составления конструкции ветвления
if yabloki < zemlyanika:
	print u"Сок будет землянично-яблочный."
else: 
    if sliva > zemlyanika:
        print u"Сок будет сливово-земляничный."
		
#Четвертый вариант составления конструкции ветвления
if yabloki < zemlyanika:
	print u"Сок будет землянично-яблочный."
elif sliva > zemlyanika:
    print u"Сок будет сливово-земляничный."

Краткое пояснение к коду

Первый вариант составления кода – такой же, как в предыдущем уроке.
Если возьмем больше земляники, то сок будет землянично-яблочный.
Если возьмем больше яблок, то сок будет яблочно-земляничный.

Второй вариант. Вместо второго блока if мы используем блок else. Это необязательный блок, но его проще и короче написать, чем два блока if. Поэтому программисты его часто используют. Означает он следующее:
если яблок меньше земляники, то сок будет землянично-яблочный,
в противном случае - сок будет яблочно-земляничный.
То есть здесь мы имеем два варианта – либо яблок больше земляники, либо наоборот. Вот это «наоборот» и означает слово else.

Третий вариант. А если мы добавим третье условие – сливу. В этом случае в блоке else нам надо добавить вложенный блок if. И в него встраиваем это третье условие.

Четвертый вариант. Он такой же, как третий вариант, но слова else и if мы объединяем в блок elif. Это делается для того, чтобы все нижележащие блоки условий лежали ровно под вышележащими блоками. Если же делать по третьему варианту, то каждый нижележащий блок будет смещен на 4 пробела вправо. И если в программе будет 20 условий, то в окне программы будет некрасивая "лесенка" и самый нижний блок else-if уйдет далеко вправо.


Пока мы просто знакомимся с этими новыми командами: if-else-elif. Но в дальнейшем вы поймете, что чаще всего их используют для интерактивного общения с пользователем.

Например, если вы сдаете теоретический экзамен на вождение автомобилем: 

  1. Если вы набрали 20 баллов, вы сдали экзамен.
  2. Если вы набрали 19 баллов, вам выдается 5 дополнительных вопросов.
  3. Если вы набрали 18 баллов, вам выдается 10 дополнительных вопросов.
  4. Если вы набрали 17 баллов и менее – вы не сдали экзамен.

Примерно так выглядит задание для программиста, чтобы он составил программу расчета результатов экзамена. И он начинает использовать блоки if-else-elif для отображения разных вариантов сдачи экзамена.

 

Теперь открываем программу PowerShell и прописываем команду: python desktop/test22.py

В итоге у вас должно получиться также, как на картинке.


Домашнее задание

  1. Изучите мой код и проговорите те действия, которые выполняет программа на каждой строчке кода.
  2. Попробуйте поменять значения переменных и посмотрите на результат.

А в следующем уроке мы научимся вовлекать пользователя в программный код с помощью блоков if, то есть создавать интерактивный сценарий в виде небольшой игры - перейти в урок 28