Значение elif в python

if/elif/else#

Конструкция if/elif/else позволяет делать ответвления в ходе программы. Программа уходит в ветку при выполнении определенного условия.

В этой конструкции только if является обязательным, elif и else опциональны:

  • Проверка if всегда идет первой.
  • После оператора if должно быть какое-то условие: если это условие выполняется (возвращает True), то действия в блоке if выполняются.
  • С помощью elif можно сделать несколько разветвлений, то есть, проверять входящие данные на разные условия.
  • Блок elif это тот же if, но только следующая проверка. Грубо говоря, это «а если …»
  • Блоков elif может быть много.
  • Блок else выполняется в том случае, если ни одно из условий if или elif не было истинным.
In [1]: a = 9 In [2]: if a == 10: . : print('a равно 10') . : elif a  10: . : print('a меньше 10') . : else: . : print('a больше 10') . : a меньше 10 

Условия#

Конструкция if построена на условиях: после if и elif всегда пишется условие. Блоки if/elif выполняются только когда условие возвращает True, поэтому первое с чем надо разобраться — это что является истинным, а что ложным в Python.

True и False#

В Python, кроме очевидных значений True и False, всем остальным объектам также соответствует ложное или истинное значение:

  • истинное значение:
    • любое ненулевое число
    • любая непустая строка
    • любой непустой объект
    • 0
    • None
    • пустая строка
    • пустой объект

    Например, так как пустой список это ложное значение, проверить, пустой ли список, можно таким образом:

    In [12]: list_to_test = [1, 2, 3] In [13]: if list_to_test: . : print("В списке есть объекты") . : В списке есть объекты 

    Тот же результат можно было бы получить несколько иначе:

    In [14]: if len(list_to_test) != 0: . : print("В списке есть объекты") . : В списке есть объекты 

    Операторы сравнения#

    Операторы сравнения, которые могут использоваться в условиях:

    In [3]: 5 > 6 Out[3]: False In [4]: 5 > 2 Out[4]: True In [5]: 5  2 Out[5]: False In [6]: 5 == 2 Out[6]: False In [7]: 5 == 5 Out[7]: True In [8]: 5 >= 5 Out[8]: True In [9]: 5  10 Out[9]: True In [10]: 8 != 10 Out[10]: True 

    Обратите внимание, что равенство проверяется двойным == .

    Пример использования операторов сравнения:

    In [1]: a = 9 In [2]: if a == 10: . : print('a равно 10') . : elif a  10: . : print('a меньше 10') . : else: . : print('a больше 10') . : a меньше 10 

    Оператор in#

    Оператор in позволяет выполнять проверку на наличие элемента в последовательности (например, элемента в списке или подстроки в строке):

    In [8]: 'Fast' in 'FastEthernet' Out[8]: True In [9]: 'Gigabit' in 'FastEthernet' Out[9]: False In [10]: vlan = [10, 20, 30, 40] In [11]: 10 in vlan Out[11]: True In [12]: 50 in vlan Out[12]: False 

    При использовании со словарями условие in выполняет проверку по ключам словаря:

    In [15]: r1 =  . : 'IOS': '15.4', . : 'IP': '10.255.0.1', . : 'hostname': 'london_r1', . : 'location': '21 New Globe Walk', . : 'model': '4451', . : 'vendor': 'Cisco'> In [16]: 'IOS' in r1 Out[16]: True In [17]: '4451' in r1 Out[17]: False 

    Операторы and, or, not#

    В условиях могут также использоваться логические операторы and , or , not :

    In [15]: r1 =  . : 'IOS': '15.4', . : 'IP': '10.255.0.1', . : 'hostname': 'london_r1', . : 'location': '21 New Globe Walk', . : 'model': '4451', . : 'vendor': 'Cisco'> In [18]: vlan = [10, 20, 30, 40] In [19]: 'IOS' in r1 and 10 in vlan Out[19]: True In [20]: '4451' in r1 and 10 in vlan Out[20]: False In [21]: '4451' in r1 or 10 in vlan Out[21]: True In [22]: not '4451' in r1 Out[22]: True In [23]: '4451' not in r1 Out[23]: True 

    Оператор and#

    В Python оператор and возвращает не булево значение, а значение одного из операндов.

    Если оба операнда являются истиной, результатом выражения будет последнее значение:

    In [24]: 'string1' and 'string2' Out[24]: 'string2' In [25]: 'string1' and 'string2' and 'string3' Out[25]: 'string3' 

    Если один из операторов является ложью, результатом выражения будет первое ложное значение:

    In [26]: '' and 'string1' Out[26]: '' In [27]: '' and [] and 'string1' Out[27]: '' 

    Оператор or#

    Оператор or , как и оператор and, возвращает значение одного из операндов.

    При оценке операндов возвращается первый истинный операнд:

    In [28]: '' or 'string1' Out[28]: 'string1' In [29]: '' or [] or 'string1' Out[29]: 'string1' In [30]: 'string1' or 'string2' Out[30]: 'string1' 

    Если все значения являются ложными, возвращается последнее значение:

    Важная особенность работы оператора or — операнды, которые находятся после истинного, не вычисляются:

    In [33]: '' or sorted([44, 1, 67]) Out[33]: [1, 44, 67] In [34]: '' or 'string1' or sorted([44, 1, 67]) Out[34]: 'string1' 

    Пример использования конструкции if/elif/else#

    Пример скрипта check_password.py, который проверяет длину пароля и есть ли в пароле имя пользователя:

    # -*- coding: utf-8 -*- username = input('Введите имя пользователя: ') password = input('Введите пароль: ') if len(password)  8: print('Пароль слишком короткий') elif username in password: print('Пароль содержит имя пользователя') else: print('Пароль для пользователя <> установлен'.format(username)) 
    $ python check_password.py Введите имя пользователя: nata Введите пароль: nata1234 Пароль содержит имя пользователя $ python check_password.py Введите имя пользователя: nata Введите пароль: 123nata123 Пароль содержит имя пользователя $ python check_password.py Введите имя пользователя: nata Введите пароль: 1234 Пароль слишком короткий $ python check_password.py Введите имя пользователя: nata Введите пароль: 123456789 Пароль для пользователя nata установлен

    Тернарное выражение (Ternary expression)#

    Иногда удобнее использовать тернарный оператор, нежели развернутую форму:

    s = [1, 2, 3, 4] result = True if len(s) > 5 else False 

    Этим лучше не злоупотреблять, но в простых выражениях такая запись может быть полезной.

    Источник

    №13 Условные выражения и конструкция if / Уроки по Python для начинающих

    Эти условные могут быть использованы несколькими способами, чаще всего в выражениях if и циклах. if записывается с использованием ключевого слова if .

    a = 33 b = 200 if b > a: print("b больше, чем a") 

    В этом примере мы используем две переменных, a и b , которые используются как часть оператора if чтобы убедиться, что b больше чем a . Учитывая, что a — 33, а b — 200, мы знаем что 200 больше чем 33, поэтому мы выводим на экран “b больше, чем a”.

    Отступы

    Python полагается на отступы пробелом, для определения частей кода. В других языках программирования часто используются фигурные скобки для этой цели.
    Оператор if, без отступа (вызовет ошибку):

    a = 33 b = 200 if b > a: print("b больше, чем a") 
     File "demo_indentation_test.py", line 2 print("b больше, чем a") ^ IndentationError: expected an indented block 

    elif

    Ключевое слово elif — это способ Python сказать, что “если предыдущие условные были неверными, тогда попробуйте это условное”.

    a = 33 b = 33 if b > a: print("b больше, чем a") elif a == b: print("a равно b") 

    В этом примере a равняется b , в связи с этим первое условие не будет верно, но условие elif — True, поэтому на экран мы выводим “a равно b”.

    else

    Ключевое слово else захватывает все, что не было захвачено предыдущими условиями.

    a = 200 b = 33 if b > a: print("b больше, чем a") elif a == b: print("a и b равны") else: print("a больше, чем b") 

    В этом примере a больше чем b , и поэтому первое условие не будет true, так же как и условие elif не будет true, поэтому нам нужно перейти else и вывести на экран “a больше, чем b”.
    Вы можете так же использовать else без elif :

    a = 200 b = 33 if b > a: print("b больше, чем a") else: print("b меньше, чем a") 

    Короткая запись If

    Если у вас есть только один оператор для выполнения, поместите его в ту же строку, что и оператор if.
    Однострочная запись if:

    if a > b: print("a больше, чем b") 

    Короткая запись If … Else

    Если у вас есть только один оператор для выполнения, один для if и один для else , вы можете поместить их в одну строку:

    Пример

    Однострочный оператор if else:

    print("A") if a > b else print("B") 

    Так же вы можете записать сразу несколько операторов else на одной строке:

    print("A") if a > b else print(" token punctuation">) if a == b else print("B") 

    And

    Ключевое слово and — логический оператор, который используется для объединения условных операторов:
    Проверьте больше ли a нежели b , и больше ли c чем a :

    if a > b and c > a: print("Оба условия True") 

    Or

    Ключевое слово or — логический оператор, который используется для объединения условных операторов:
    Проверьте больше a чем b , или больше ли a в сравнении с c :

    if a > b or a > c: print("Одно из усовий True") 

    Источник

    Читайте также:  Все для css скрипты
Оцените статью