Статьи

Плавное обновление на условных выражениях Python

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

Здесь вступают в силу условные утверждения . Они помогают нам принимать такие решения с помощью логического контроля наших программ. Условные операторы в Python: if , elif и др.

Но что делает условное утверждение? Он просто проверяет, является ли утверждение (тест) истинным или ложным , в зависимости от того, какое решение выполняется.

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

В этом разделе я опишу различные части, из которых состоит условное утверждение. Условное утверждение в основном состоит из следующих основных частей:

  • тест, который оценивает как истинное или ложное
  • блок кода, который выполняется, если тест верен
  • необязательный блок кода, если тест ложен

Условный оператор в Python выглядит следующим образом:

1
2
3
4
if test:
    code
else:
    code

где test — логическое выражение, то есть выражение, которое оценивается как true или false . Другими словами, условные утверждения позволяют нам проверить достоверность некоторых утверждений. Давайте посмотрим на простой пример вышеуказанной структуры:

1
2
3
4
5
6
7
x = 0
if x == 3:
    print ‘x is equal to 3’
else:
    print ‘x is NOT equal to 3’
     
print ‘That\’s it!’

Каков вывод этого фрагмента кода? Вперед, попробуй это.

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

1
2
3
else:
   print ‘x is not equal to 5’
   print ‘That\’s it!’

В этом случае print 'That\'s it!' будет частью блока кода else .

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

IndentationError: expected an indented block

Условный оператор считается вложенным, если истинный блок кода или ложный блок кода (т.е. еще) содержит другой условный оператор. Давайте посмотрим пример этого:

1
2
3
4
5
if course1 == ‘Computer Science I’:
    if course2 == ‘Computer Science II’:
        print ‘student can take the Data Structures course’
else:
    print ‘student lacks the necessary requirements to take the Data Structures course’

Здесь у нас есть вложенный условный оператор, так как первый оператор if содержит другой оператор if внутри него. Еще раз обратите внимание, как код отступ. Это очень важно при программировании на Python.

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

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

1
2
3
4
5
6
if a<b and a<c:
    print ‘x is the smallest number’
elif b<c:
    print ‘b is the smallest number’
else:
    print ‘c is the smallest number’

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

Мы также использовали логическую операцию с именем and , которая означает, что все операторы должны быть истинными, чтобы выполнялся следующий оператор. Булевы операции Python можно обобщить в следующей таблице:

Булева операция Описание
или следующее утверждение выполняется, если любое выражение верно
и все выражения должны быть истинными для запуска следующего оператора
не выражение ложно, если оно оценивается как истина, и наоборот

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

Давайте возьмем другой пример, который показывает, как мы можем использовать логические операции со списками :

1
2
3
4
list = [1,2,3,4,5]
x = 13
if x not in list:
    print ‘x is not in the list’

Видите, как мы использовали not в этом примере? Как известно, для выполнения блока кода в операторе if оператор (логическое выражение) должен иметь значение true . В нашем случае утверждение изначально оценивается как ложное , поскольку 13 не принадлежит списку. Однако, если вы запустите программу, вы заметите, что выполняется оператор print . Как это случилось? Это произошло, поскольку мы использовали оператор not , который инвертирует исходное значение оценки. В нашем случае оно инвертировало ложь в истину .

Я знаю, что вы, возможно, до сих пор интересовались, когда появится пример switch . Возможно, если вы выучили условные операторы на другом языке программирования, вы столкнулись с примерами, демонстрирующими всю прелесть использования операторов switch . Причина, по которой я не упомянул примеры таких операторов, заключается в том, что в Python нет операторов switch !

Для получения дополнительной информации об условиях Python вы можете обратиться к документации .