Возможно, самый известный тип инструкций - это конструкция 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
в логическом контекстеиспользуйте следующий стиль написания кода:
if 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)