Команда if в Python работает по той же схеме, что и в других языках программирования. Она содержит в себе логическое условие, и если это условие истинно (равно True) - выполнится блок кода, записанный внутри команды if. Если же логическое условие ложно (равно False), то блок кода записанный внутри команды if пропускается, а выполнение кода переходит на следующую после блока if строчку кода.
Например:
1 | # Происходит сравнение переменной num с нулем
2 | if num > 0:
3 | # Если переменная больше нуля, то печатается строка
4 | print "Число больше нуля"
5 | # Данная строка печатается в любом случае, поскольку она находится вне блока if
6 | print "Строка после блока if"
В конструкцию if может быть добавлена команда else. Она содержит блок кода, который выполняется, если условие в команде if ложно.
Команда else является опциональной, в каждой if - конструкции может быть только одна команда else.
Например:
1 | if num > 0:
2 | # если переменная num больше нуля то выполняется этот блок кода
3 | print "Число больше нуля"
4 | else:
5 | # иначе выполнится этот блок кода
6 | print "Число меньше или равно нулю"
Команда elif позволяет проверить истинность нескольких выражений и в зависимости от результата проверки, выполнить нужный блок кода.
Как и команда else, команда elif являктся опциональной, однако, в отличие от команды else, у одной if-конструкции может существовать произвольное количество команд elif.
Например:
1 | # Производится последовательное сравнение переменной num.
2 | # Если num больше ста выполняется код в строке 4 и выполнение переходит на строку 13, иначе выполняется проверка в строке 6
3 | if num > 100:
4 | print "Число больше ста"
5 | # Если num больше пятидесяти - выполняется код в строке 7 и выполнение переходит на строку 13, иначе выполняется проверка в строке 8 и т.д.
6 | elif num > 50:
7 | print "Число больше пятидесяти"
8 | elif num > 25:
9 | print "Число больше двадцати пяти"
10 | # Если результат всех проверок оказался ложным выполняется блок в строке 11, после чего переходим на строку 13
11 | else:
12 | print "Число меньше двадцати пяти"
13 | print "Финальная строка"
Базовый Python не поддерживает конструкцию switch/case, как, например, JavaScript, но ее возможно реализовать при помощи if...elif...else конструкции.
В процессе разработки может возникнуть ситуация, в которой после одной истинной проверки следует сделать еще несколько. В таком случае необходимо использовать вложенные условные конструкции. То есть одну if...elif...else конструкцию внутри другой.
Например:
1 | if num > 100:
2 | if num < 150:
3 | print "Число больше ста, но меньше ста пятидесяти"
4 | elif num < 200:
5 | print "Число больше ста, но меньше двухсот"
6 | elif num > 50:
7 | if num < 90:
8 | print "Число больше пятидесяти, но меньше девяноста"
9 | else:
10 | print "Число больше пятидесяти и больше девяноста"
11 | else:
12 | print "Число меньше пятидесяти"
Логика выполнения вложенных условных конструкций та же, что и у обычных. Главное не запутаться с отступами и порядком выполнения сравнений.
Циклы в Python
Published: 18 October 2014