Опубликован: 14.06.2015 | Доступ: свободный | Студентов: 7372 / 1136 | Длительность: 09:49:00
Авторские права: Creative Commons Attribution 3.0
Самостоятельная работа 2:

Условное выполнение

< Самостоятельная работа 1 || Самостоятельная работа 2: 123

5.4. Альтернативное исполнение

Второй формой инструкции if является альтернативное исполнение (alternative execution), в котором существуют два направления выполнения и условие определяет, какое из них выполнится. Синтаксис выглядит следующим образом:

if x%2 == 0 :
        print 'x is even'
else :
        print 'x is odd'

Если остаток от деления x на 2 равен 0, то x-четное, и программа выводит сообщение об этом. Если условие ложно, то выполняется второй набор инструкций.


Так как условие может быть либо истинным, либо ложным, тогда точно выполнится один из вариантов. Варианты называются ветвями (branches), потому что они являются ответвлениями в потоке исполнения.

5.5. Последовательность условий

Иногда имеется больше двух вариантов выполнения, тогда нам необходимо больше двух ветвей. В этом случае, можно воспользоваться сцепленными условиями (chained conditional):

if x < y:
       print 'x is less than y'
elif x > y:
       print 'x is greater than y'
else:
       print 'x and y are equal'

elif является аббревиатурой от "else if". Снова будет исполнена точно одна ветвь.


Не существует ограничения на количество инструкций elif. Если встречается оператор else, то он должен быть в конце, но может не быть ни одного.

if choice == 'a':
       print 'Bad guess'
elif choice == 'b':
       print 'Good guess'
elif choice == 'c':
       print 'Close, but not correct'

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

5.5. Вложенные условия

Одно условие может быть вложено в другое. Мы можем записать пример трихотомии (trichotomy):

if x == y:
print 'x and y are equal'
else:
if x < y:
print 'x is less than y'
else:
print 'x is greater than y'

Внешнее условие содержит две ветки. Первая ветка содержит простую инструкцию. Вторая ветка содержит еще одну инструкцию if, которая имеет две ветки. Эти две ветки являются простыми инструкциями, хотя они также могут содержать инструкции.


Хотя отступ инструкций делает структуру более очевидной, вложенные условия (nested conditionals) усложняют чтение исходного кода. Избегайте их по возможности.

Логические операторы часто позволяют упростить вложенные условные инструкции. Например, мы можем записать следующий код, используя одно условие:

if 0 < x:
       if x < 10:
            print 'x is a positive single-digit number.'

Инструкция print выполнится только, если мы зададим ее после обоих условий, также мы получим похожий эффект, используя оператор and:

if 0 < x and x < 10:
       print 'x is a positive single-digit number.'
< Самостоятельная работа 1 || Самостоятельная работа 2: 123
Алексей Виноградов
Алексей Виноградов

Видеокурс выложен на сайте Altube.ru вместо Youtube и плеер Altube не поддерживает субтитры. Прошу решить вопрос о предоставлении русских субтитров в этом англоязычном видеокурсе.

Петр Олейников
Петр Олейников

Данные файлы неоходимы не только для самостоятельных работ, но и для тестов. А по ссылкам в лекциях они не доступны, выдает ошибку 404.