
Принятие решений — одна из основополагающих концепций программирования. Python поддерживает распространённые операторы управления потоком выполнения, встречающиеся в других языках, с некоторыми изменениями. Управляющий оператор if — один из самых простых и известных операторов, используемых для выполнения кода при определённом условии.
В этой статье мы рассмотрим основы оператора if в Python.
Python if Оператор
Самая простая форма оператора if в Python выглядит следующим образом:
if EXPRESSION : STATEMENT
Оператор if начинается с ключевого слова if за которым следует условное выражение.
За EXPRESSION должно следовать двоеточие ( : . Если выражение EXPRESSION возвращает значение True , выполняется STATEMENT . Если EXPRESSION возвращает значение False , ничего не происходит; STATEMENT игнорируется. STATEMENT может быть любым оператором, включая несколько операторов или вложенные операторы if . Чтобы не выполнять операторы, используйте оператор pass .
Блок STATEMENT начинается с отступа и заканчивается первой строкой без отступа. Большинство людей предпочитают использовать отступ в 4 или 2 пробела. Официальное руководство по стилю кода Python рекомендует использовать 4 пробела на уровень отступа и избегать смешивания табуляции и пробелов при создании отступов.
Давайте рассмотрим следующий пример скрипта, который проверяет, больше ли заданное число 5.
number = int ( input ( 'Enter a number: ' )) if number > 5: print ( number, 'is greater than 5.' )
Сохраните код в файле и запустите его из командной строки:
python test.py
Скрипт предложит вам ввести число. Например, если вы введёте 10, условное выражение будет True (10 больше 5), и функция print будет выполнена.
10 is greater than 5.
Python поддерживает стандартные операции сравнения:
-
a == b— Истина, еслиaиbравны. -
a != b— Истина, еслиaиbне равны. -
a > b— Истина, еслиaбольшеb. -
a >= b— Истина, еслиaравно или большеb. -
a < b— Истина, еслиaменьшеb. -
a <= b— Истина, еслиaравно или меньшеb.
Вы также можете использовать ключевое слово in для проверки наличия значения в итерируемом объекте (строке, списке, кортеже , словаре и т. д.):
s = 'linuxize' if 'ze' in s : print ( 'True.' )
Вот еще один пример использования словаря:
d = { 'a' : 2 , 'b' : 4 } if 'a' in d : print ( 'True.' )
При использовании в словаре ключевое слово in проверяет, есть ли в словаре определенный ключ.
Для отрицания условного выражения используйте логический оператор not :
number = int ( input ( 'Enter a number: ' )) if not number < 5 : print ( number , 'is greater than 5.' )
if..else
Оператор if..else оценивает условие и выполняет один из двух операторов в зависимости от результата.
Оператор Python if..else имеет следующую форму:
if EXPRESSION : STATEMENT1 else : STATEMENT2
Если EXPRESSION возвращает значение True , выполняется STATEMENT1 . В противном случае, если EXPRESSION возвращает False , выполняется STATEMENT2 . В операторе может быть только одно предложение else .
Ключевое слово else должно заканчиваться двоеточием ( : ) и находиться на том же уровне отступа, что и соответствующее ключевое слово if .
Давайте добавим предложение else к предыдущему примеру скрипта:
number = int ( input ( 'Enter a number: ' )) if number > 5 : print ( number , 'is greater than 5.' ) else : print ( number , 'is equal or less than 5.' )
Если запустить код и ввести число, скрипт выведет разное сообщение в зависимости от того, больше или меньше/равно ли число 5.
if..elif..else Оператор
Ключевое слово elif является сокращением от else if .
Оператор Python if..elif..else имеет следующую форму:
if EXPRESSION1 : STATEMENT1 elif : EXPRESSION2 : STATEMENT2 else : STATEMENT3
Если EXPRESSION1 имеет значение True , выполняется STATEMENTS1 . Если EXPRESSION2 имеет значение True , выполняется STATEMENTS2 . Если ни одно из выражений не имеет значения True , выполняется STATEMENTS3 .
Ключевое слово elif должно заканчиваться двоеточием ( : ) и иметь тот же уровень отступа, что и соответствующее ключевое слово if . В операторе может быть одно или несколько предложений elif . Предложение else необязательно. Если предложение else не используется и все выражения возвращают значение False , ни одно из предложений не выполняется.
Условия проверяются последовательно. Как только одно из условий возвращает True , остальные условия не выполняются, и управление программой переходит в конец операторов if .
Давайте добавим предложение elif к предыдущему скрипту:
number = int ( input ( 'Enter a number: ' )) if number > 5 : print ( number , 'is greater than 5.' ) elif number < 5 : print ( number , 'is less than 5.' ) else : print ( number , 'is equal to 5.' )
В отличие от большинства языков программирования, в Python нет операторов switch и case . Вместо switch или case можно использовать последовательность из нескольких операторов elif .
Вложенные операторы if
Python позволяет вкладывать операторы if if в друга. Как правило, следует избегать чрезмерных отступов и использовать elif вместо вложенных операторов if .
Следующий скрипт предложит вам ввести три числа и выведет наибольшее из них.
number1 = int ( input ( 'Enter the first number: ' )) number2 = int ( input ( 'Enter the second number: ' )) number3 = int ( input ( 'Enter the third number: ' )) if number1 > number2 : if number1 > number3 : print ( number1 , 'is the largest number.' ) else : print ( number3 , 'is the largest number.' ) else : if number2 > number3 : print ( number2 , 'is the largest number.' ) else : print ( number3 , 'is the largest number.' )
Вот как будет выглядеть результат:
Enter the first number: 455 Enter the second number: 567 Enter the third number: 354 567 is the largest number.
Множественные условия
Логические операторы or и « and позволяют объединять несколько условий в операторах if .
Вот ещё одна версия скрипта для вывода наибольшего числа из трёх. В этой версии вместо вложенных операторов if мы будем использовать логический оператор and и elif .
number1 = int ( input ( 'Enter the first number: ' )) number2 = int ( input ( 'Enter the second number: ' )) number3 = int ( input ( 'Enter the third number: ' )) if number1 > number2 and number1 > number3 : print ( number1 , 'is the largest number.' ) elif number2 > number3 and number2 > number3 : print ( number2 , 'is the largest number.' ) else : print ( number3 , 'is the largest number.' )
Заключение
Операторы if , if..else и if..elif..else позволяют контролировать ход выполнения Python путем оценки заданных условий.
Если у вас есть вопросы или пожелания, не стесняйтесь оставлять комментарии.
Связанные руководства