Добро пожаловать на мой письменный курс Введение в Python! В предыдущей статье подробно рассматривались функции и возвращаемые значения, возвращаемые значения, стиль кода и согласованность.



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

В этой статье рассматривается использование этих инструментов для создания логики ветвления в Python. Мы обсудим, как сравнивать значения, как использовать операторы if для выполнения кода на основе результатов этих сравнений и как использовать операторы else и elif для добавления дополнительной логики ветвления. К концу этой статьи вы будете хорошо понимать,как использовать ветвление для управления потоком вашего кода Python.

Сравнение значений в Python

В Python мы можем сравнивать значения, используя операторы сравнения. К ним относятся:

  • ==: равно
  • !=: не равно
  • >: больше, чем
  • <: меньше чем
  • >=: больше или равно
  • <=: меньше или равно

Эти операторы возвращают логическое значение True или False. Вот некоторые примеры:

# Comparing integers
1 == 1 # True
1 != 2 # True
2 > 1 # True
2 < 3 # True
2 >= 2 # True
2 <= 3 # True

# Comparing strings
'hello' == 'hello' # True
'hello' != 'world' # True
'hello' > 'goodbye' # True
'hello' < 'world' # True
'hello' >= 'hello' # True
'hello' <= 'world' # True

Мы также можем сравнивать объекты разных типов, такие как строки и целые числа:

# Comparing a string and an integer
'2' == 2 # False
'2' != 2 # True
'2' > 2 # False
'2' < 2 # False
'2' >= 2 # False
'2' <= 2 # False

Важно отметить, что объекты разных типов сравниваются на основе их типов, а не их значений. В приведенном выше примере строка '2' не равна целому числу 2, потому что это разные типы.

Ветвление с операторами if

В Python мы можем использовать ветвление для выполнения различных блоков кода на основе результатов сравнения. Мы делаем это, используя операторы if.

Вот пример:

x = 28

if x > 0:
    print('x is positive')

В этом примере блок кода с отступом под оператором if будет выполнен, если сравнение x > 0 равно True.

Осторожнее с отступом

В Python отступы используются для определения блоков кода. При написании оператора if код, который должен выполняться, если сравнение равно True, должен располагаться с отступом под оператором if. Этот отступ необходим, потому что он сообщает Python, какие строки кода относятся к блоку кода. Если отступ неправильный, Python выдаст ошибку:

x = 28

if x > 0:
print('x is positive')  # This line is not indented correctly

В этом примере первый оператор print не имеет отступа под оператором if, поэтому Python сочтет его отдельным оператором и вызовет IndentationError при его выполнении.

Вот сообщение об ошибке, которое будет отображаться при запуске этого кода:

IndentationError: expected an indented block

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

x = 28

if x > 0:
    print('x is positive')
    print('This line is also part of the code block')
print('This line is not part of the code block')

В этом коде первые два print имеют отступ под оператором if, поэтому они являются частью блока кода, который будет выполняться, если x > 0. Третий print не имеет отступа, поэтому он не является частью блока кода и будет выполняться независимо от значения x.

Очень важно поддерживать одинаковые отступы во всем коде, так как это может существенно повлиять на поведение вашей программы. Всегда следите за тем, чтобы отступы ваших блоков кода были правильными, так как это важная часть синтаксиса Python.

Использование оператора «else»

Мы также можем добавить оператор else для выполнения другого блока кода, когда сравнение равно False:

x = 28

if x > 0:
    print('x is positive')
else:
    print('x is not positive')

Использование оператора «элиф»

Если мы хотим проверить несколько условий, мы можем использовать операторы elif (сокращение от else if):

x = 28

if x > 0:
    print('x is positive')
elif x < 0:
    print('x is negative')
else:
    print('x is zero')

В этом примере первый блок кода будет выполнен, если x > 0 равен True, второй блок кода будет выполнен, если x < 0 равен True, и третий блок кода будет выполнен, если оба сравнения равны False.

Важно отметить, что в операторе if-elif-else будет выполняться только один блок кода. После выполнения блока кода остальная часть оператора пропускается.

Вложенное ветвление

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

x = 28
y = 14

if x > 0:
    if y > 0:
        print('x and y are both positive')
    else:
        print('x is positive, y is not')

Логические операторы

В Python мы можем использовать операторы and, or и not для создания сложной логики ветвления, которая проверяет несколько условий. Эти операторы позволяют нам одновременно проверять, являются ли несколько условий True или False, и отрицать условие.

"and" оператор

Оператор and позволяет нам проверить, являются ли несколько условий True одновременно. Он возвращает True, если все условия равны True, и False, если любое из условий равно False.

Вот пример:

x = 28
y = 14

if x > 0 and y > 0:
    print('x and y are both positive')

В этом примере блок кода будет выполнен, если оба x > 0 и y > 0 равны True. Если какое-либо из сравнений равно False, кодовый блок не будет выполнен.

"or" оператор

Оператор or позволяет нам проверить, является ли хотя бы одно из нескольких условий True. Он возвращает True, если любое из условий равно True, и False, если все условия равны False.

Вот пример:

x = 28
y = -10

if x > 0 or y > 0:
  print('x or y is positive')

В этом примере блок кода будет выполнен, если x > 0 или y > 0 равно True. Если оба сравнения равны False, кодовый блок не будет выполнен.

"not” оператор

Оператор not позволяет нам отрицать условие. Он возвращает противоположное логическое значение условия, к которому он применяется.

Вот пример:

x = 28

if not x > 0:
  print('x is not positive')

В этом примере блок кода будет выполнен, если x > 0 равно False. Если x > 0 равно True, кодовый блок не будет выполнен.

Добавьте круглые скобки, чтобы создать более сложные условия

Мы можем использовать эти операторы вместе со скобками для создания сложной логики ветвления. Например:

x = 28
y = -10

if (x > 0 and y > 0) or (x < 0 and y < 0):
  print('x and y have the same sign')
else:
  print('x and y have different signs')

В этом примере блок кода будет выполнен, если (x > 0 and y > 0) или (x < 0 and y < 0) равно True. Если ни одно из этих условий не соответствует True, будет выполнен блок кода в операторе else.

Использование таблицы истинности может быть полезным

Таблица истинности — это таблица, которая показывает возможные входы и выходы для логического выражения. Это полезный инструмент для понимания того, как работают логические выражения, и тестирования поведения вашего кода.

Вот пример построения таблицы истинности для операторов and or и not:

В этой статье мы обсудили инструменты, которые Python предоставляет для сравнения значений и ветвления на основе результатов этих сравнений. Мы рассмотрели операторы сравнения, операторы if, операторы else и операторы elif, а также рассмотрели, как использовать эти инструменты для создания логики ветвления в Python. Мы также обсудили, как использовать операторы and, or и not для создания нескольких условий.

Независимо от того, являетесь ли вы новичком, впервые изучающим Python, или опытным разработчиком, желающим освежить свои навыки, знание того, как эффективно использовать эти инструменты, необходимо для того, чтобы стать опытным программистом на Python.

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

Оставайтесь с нами, и давайте код!



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

Спасибо, что прочитали