Условный оператор if/elif/else, ветвление кода программы.
Возможно, самый известный тип инструкций - это
конструкция if/elif/else
. Часто возникает необходимость, чтобы некоторый код выполнялся только при соблюдении определенного условия или код подлежащий выполнению, должен выбираться исходя из выполнения одного из нескольких взаимоисключающих условий.
Например:
>>> x = int(input("Please enter an integer: "))
# Please enter an integer: 42
>>> if x < 0:
... x = 0
... print('Negative changed to zero')
... elif x == 0:
... print('Zero')
... elif x == 1:
... print('Single')
... else:
... print('More')
# More
Ключевое слово
elif
является сокращением от
else if
. Инструкции
elif
и
else
могут отсутствовать и не являются обязательными. Инструкция
elif
может повторяться сколько угодно раз
if/elif/else
. Такая последовательность инструкций
elif
является заменой для конструкции
switch
или
case
, которые есть в других языках программирования.
Составная инструкция if
, elif
и else
обеспечивает условное выполнение блоков инструкций.
Она имеет следующий синтаксис:
if выражение:
блок кода
elif выражение:
блок кода
elif выражение:
блок кода
...
...
else:
блок кода
Конструкция
if
вычисляет и оценивает выражения одно за другим, пока одно из них не окажется истинным, затем выполняется соответствующий блок кода . После выполнения блока кода первого истинного (
True
) выражения, последующие инструкции
elif
/
else
не вычисляются и не оцениваются, а блоки кода в них не выполняется. Если все выражения ложны (
False
), выполняется блок кода инструкции
else
, если он присутствует.
В предложениях
if
и
elif
в качестве условия можно использовать любое выражение Python. В подобных случаях говорят, что условие используется в логическом контексте. В логическом контексте любое выражение
рассматривается как истинное или ложное. Любое ненулевое число или любой непустой контейнер (строка, кортеж, список, словарь, множество) расценивается как истинное значение. Нуль (любого числового типа),
None
и пустой контейнер расцениваются как ложные значения. Для тестирования значения
x
в логическом контекстеиспользуйте следующий стиль написания кода:
Это наиболее ясная и соответствующая духу Python форма кода.
Примеры if/elif/else
конструкций
Использование
None
в конструкции
if
:
a = None
if a is not None:
print('a НЕ равно None')
else:
print('a равно None')
Использование False
и True
в конструкции if
:
bul = False
if bul:
print('bul = True')
else:
print('bul = False')
Использование integer
числа 0 в конструкции if
:
number = 0
if number:
print('number не равно 0')
else:
print('number = 0')
Использование числовых сравнений в конструкции if
:
a = 10
b = 20
if a != b and a > b:
print('a не равно b и a больше b')
else:
print('a не равно b и a меньше b')
Вложенные конструкции if
:
a = 15
b = 3
if a != b
if a > b:
print('a больше b')
else:
print('a меньше b')
else:
print('a равно b')
Проверка наличия слова в
строке str
с помощью конструкции
if
:
string1 = 'Привет мир'
string2 = 'мир'
if string2 in string1:
print('Слово "мир" присутствует в строке "Привет мир"')
else:
print('Слово "мир" отсутствует в строке "Привет мир"')
Проверка вхождения элемента в
список list
с помощью конструкции
if
:
a = 'bc'
lst = list['ac', 'bc', 0, 1, 3, 'abc']
if a in lst:
print('Значение "bc" входит в список', lst)
else:
print('Значение "bc" не входит в список', lst)
Проверка вхождения элемента в
кортеж tuple
с помощью конструкции
if
:
a = 'bc'
tpl = tuple('ac', 'bc', 0, 1, 3, 'abc')
if a in tpl:
print('Значение "bc" входит в кортеж', tpl)
else:
print('Значение "bc" не входит в кортеж', tpl)
Проверка вхождения элемента в
множество set
с помощью конструкции
if
:
a = 'bc'
set_ = set['ac', 'bc', 0, 1, 3, 'abc']
if a in set_:
print('Значение "bc" входит в множество', set_)
else:
print('Значение "bc" не входит в множество', set_)
Проверка наличия ключа
key
в
словаре dict
с помощью конструкции
if
:
key = 'bc'
dct = dict('ac':None, 'bc':False, '0':0, '1':3, '3':1, 'abc':True]
if key in dct:
print('Ключ "bc" присутствует в словаре', dct)
else:
print('Ключ "bc" отсутствует в словаре', dct)