Возможно, самый известный тип инструкций - это конструкция 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 = ['ac', 'bc', 0, 1, 3, 'abc'] if a in lst: print('Значение "bc" входит в список', lst) else: print('Значение "bc" не входит в список', lst)
Проверка вхождения элемента в кортеж tuple
с помощью конструкции if
:
a = 'bc' tpl = ('ac', 'bc', 0, 1, 3, 'abc') if a in tpl: print('Значение "bc" входит в кортеж', tpl) else: print('Значение "bc" не входит в кортеж', tpl)
Проверка вхождения элемента в множество set
с помощью конструкции if
:
a = 'bc' set_ = {'ac', 'bc', 0, 1, 3, 'abc'} if a in set_: print('Значение "bc" входит в множество', set_) else: print('Значение "bc" не входит в множество', set_)
Проверка наличия ключа key
в словаре dict
с помощью конструкции if
:
key = 'bc' dct = {'ac':None, 'bc':False, '0':0, '1':3, '3':1, 'abc':True} if key in dct: print('Ключ "bc" присутствует в словаре', dct) else: print('Ключ "bc" отсутствует в словаре', dct)