Введение
Принятие решений является одним из фундаментальных понятий компьютерного программирования. Python поддерживает стандартные операторы управления потоком, встречающиеся в других языках, с некоторыми изменениями. Оператор управления if
является одним из самых основных и известных операторов, используемых для выполнения кода на основе определенного условия.
В этой статье мы рассмотрим основы if
в Python.
Оператор Python если
Простейшая форма 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
— True, еслиa
равно или большеb
.a < b
— True, еслиa
меньшеb
.a <= b
— True, еслиa
равно или меньшеb
.
Вы также можете использовать ключевое слово in
, чтобы проверить, присутствует ли значение в итерируемом объекте (строка, список, кортеж, словарь и т. д.):
s = 'noviello'
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
. Последовательность из нескольких операторов elif
может использоваться как switch
или заменитель case
.
Вложенные операторы 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, оценивая определенные условия.