Искать
Вы превысили запрос на
0 знаков

9. Условная инструкция if-elif-else в Python

Не пройден
0
0

Кратко

- Условная конструкция if позволяет делать ответвления программы, тем самым вы можете управлять ходом выполнения программы.

- Ключевые слова if, elif и else используются в условной конструкции.

- Ключевое слово if всегда указывается первым в условной конструкции.

- С помощью elif можно добавить другие условия, которые будут выполняться после проверки условия if.

- Блок else выполнится, только если все условия в if и elif ложные.

- В Python блок кода оформляется обязательным отступом.

- К истинным значениям в Python относятся любое число не равно нулю, любая непустая строка и любой непустой объект.

- Оператор in позволяет определить наличие элемента в последовательности, например, в строке или списке.

- Булевы операторы and, or и not возвращают один из операндов, а не булево значение.

- Внутри условных инструкций можно использовать другие инструкции, включая условные.

В предыдущем уроке мы научились форматировать строки с использованием метода format() и f-строк. Сейчас немного отвлечемся от работы с типами, чтобы лучше понять необходимость теории из следующего урока.

Условная конструкция if

Условная конструкция if позволяет делать ответвления программы при выполнении заданного условия. Мы ее немного касались в ознакомительном уроке, а сейчас рассмотрим более подробно.

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

  • ключевое слово if всегда указывается первым в условной конструкции;
  • после ключевого слова if должно быть условие и, если оно истинно (возвращает True), то выполняется код в блоке;
  • с помощью elif можно добавить другие условия, которые будут выполняться после проверки условия if;
  • elif не может существовать без if. Ключевое слово elif указывается только после if;
  • блок else выполнится, только если все условия в if и elif ложные (возвращают False).

Проще рассмотреть на примере:

Пример (python)
a = 2

if (a == 2):
    print("Два")
elif (a == 3):
    print("Три")
else:
    print("Другое число") 

Как вы уже поняли, программа выведет «Два», так как условие a == 2 истинно (т.е. возвращает True):

Пример (python)
print(a == 2) # => True        

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

Пример (python)
# Правильно
if (a == 2):
    print("Цифра")
    print("Два")

# Неправильно
if (a == 2):
print("Цифра")
print("Два") 

В следующем примере будет выведено слово «Цифра», только если a равно 2, а слово «Два» будет выводиться независимо от условия:

Пример (python)
if (a == 2):
    print("Цифра")
print("Два") 

Теперь разберемся, что в Python является истинным (True), а что ложным (False).

К истинным значениям в Python относятся:

  • любое число не равно нулю;
  • любая непустая строка;
  • любой непустой объект.

К ложным значениям в Python относятся:

  • ноль (0);
  • None;
  • пустая строка;
  • пустой объект.

К примеру, узнать пустой список или нет можно так:

Пример (python)
l = [1, 2, 3, 4, 5]
if (l):
    print("Не пуст")
else:
    print("Пуст") 

Операторы сравнения уже были рассмотрены ранее. Чтобы не возвращаться вам назад, вот они:

  • a == b – проверяет, равны ли оба операнда и возвращает истину, если это так;
  • a != b – проверяет, равны ли оба операнда и возвращает истину, если они различны;
  • a > b – возвращает истину, если левый операнд (a), больше правого операнда (b);
  • a < b – возвращает истину, если левый операнд (a), меньше правого операнда (b);
  • a >= b – возвращает истину, если левый операнд (a), больше или равен правому операнду (b);
  • a <= b – возвращает истину, если левый операнд (a), меньше или равен правому операнду (b).

Обратите внимание, равенство проверяется при помощи двойного символа равно. Один символ «равно» обозначает операцию присвоения. Еще один пример с операторами сравнения:

Пример (python)
if a > b:
    print("a больше b")
elif a < b:
    print("b больше a")
else:
    print("a и b равны")        

Кстати, круглые скобки, которые использовались в условиях первого примера, необязательны, т.е. можно записывать условие без скобок.

Оператор in

В Python есть удобный оператор in, позволяющий определить наличие элемента в последовательности, например, в строке или списке:

Пример (python)
'a' in 'abcdef' # => True
'Hello' in 'Hello, World!' # => True
1 in [1, 2, 3, 4, 5] # => True        

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

Булевы операторы andor и not не возвращают булево значение, они всегда вернут один из операндов, например:

Пример (python)
'a' and 'b' # => b
'a' and 'b' and 'c' # => c    

При использовании оператора and, значения проверяются слева направо. Мы уже выяснили, что является истинной, а что ложью. Символы abc относятся к «любой непустой строке». Итак, если все элементы истинны, то будет возвращен последний элемент.

Пример (python)
0 and 'b' # => 0
'a' and [] and 'c' # => []        

В примере выше есть ложные объекты. В таком случае оператор and вернет первый ложный объект. В случае с оператором or, будет возвращаться первый истинный объект и, только если все ложные, вернет последний ложный объект.

Еще раз скажу: операторы and и or возвращают не True и False, а один из операндов (хотя, в условной конструкции это будет значить одно и то же).

Оператор not инвертирует логическое значение операнда. Если операнд ложен, то будет возвращено True, иначе False. Оператор not в Python возвращает True или False, а не операнд:

Пример (python)
not 0 and 'b' # => b
'a' and not []# => True 

Вложенные условные инструкции

В Python, как и в других языках программирования, внутри условных инструкций можно использовать другие инструкции, включая те же условные. Т.е. вы можете вкладывать одну инструкцию в другую до бесконечности, в пределах разумного, конечно. Главное не забывать про обязательные отступы:

Пример

Пример (python)
if (a > 0): # 0 пробелов
    if (a < 3): # 4 пробела или одна табуляция
        if (a == 2): # 8 пробелов или две табуляции
            ... # 12 пробелов или три табуляции 

В этом уроке мы научились использовать условную инструкцию if-elif-else в Python, вспомнили перечень истинных и ложных объектов и познакомились с операторами inandor и not, которые могут существенно упростить написание кода.

В следующем уроке мы будем учиться определять к какому типу данных относится объект и преобразовывать из одного в другой.

Тест

Две секундочки...

Похожие уроки Codebra

@codebra_official
Подписывайся на наш Telegram-канал!
Новости, полезный материал,
программирование и ИБ
Итоги раздела «Самые основы Python»Знакомство с Python
Типы данных в PythonЗнакомство с Python
Погружение в PythonЗнакомство с Python
Обработка исключений (try/except) в PythonЗнакомство с Python
Пользовательские функции в PHPКурс по PHP
Поиск хостов с помощью NmapРазведка и сканирование
Первое знакомство с PythonЗнакомство с Python
Переменные, комментарии и типы данных в PHPКурс по PHP
Введение в раздел «Структуры данных в Python»Знакомство с Python
Впервые на сайте Codebra?

Извините за это всплывающее окно, меня они тоже раздражают.

Образовательный ресурс codebra.ru полностью посвящен программированию и компьютерной безопасности. Все курсы и уроки находятся на главной странице. Ради интереса можете посмотреть на содержимое курсов по Пентесту Active Directory, Python, HTML и CSS, JavaScript, C++ и другие, размещенные на главной странице.

Если что-то не нашли, то воспользуйтесь поиском по сайту, который находится на главной странице в самом верху.

Удачи в обучении!

Закрыть окно