Условия и условные операторы
На этом уроке вы узнаете, как использовать условия и условные операторы для изменения работы ваших функций.
Условия
В программировании условия — это утверждения, которые являются либо истинными, либо ложными. Существует много разных способов записи условий в Python, но некоторые из наиболее распространенных способов записи условий просто сравнивают два разных значения. Например, вы можете проверить, больше ли 2, чем 3.
print(2 > 3) #True
Python определяет это как False, так как 2 не больше 3.
Вы также можете использовать условия для сравнения значений переменных. В следующей ячейке кода var_one имеет значение 1, а var_two имеет значение два. В условиях мы проверяем, меньше ли var_one 1 (что равно False), и проверяем, больше ли var_two или равно ли var_one (что равно True).
var_one = 1
var_two = 2
print(var_one < 1) #False
print(var_two >= var_one) #True
Список распространенных символов, которые можно использовать для построения условий, можно найти в таблице ниже.
Символ | Значение |
---|---|
== | равно |
!= | не равно |
< | меньше |
<= | меньше или равно |
> | больше |
>= | больше или равно |
- var_one==1 проверяет, равно ли значение var_one 1, но
- var_one=1 устанавливает значение var_one равным 1.
Условные операторы
Условные операторы используют условия для изменения того, как работает ваша функция. Они проверяют значение условия, и если условие оценивается как True, то выполняется определенный блок кода. (В противном случае, если условие ложно, то код не выполняется.)
Операторы "if"
Самым простым типом условного оператора является оператор "if". Пример этого можно увидеть в функции estimate_temp() ниже. Функция принимает в качестве входных данных температуру тела (в градусах Цельсия).
Изначально message устанавливается на "Нормальная температура". Затем, если temp > 38 — True (например, температура тела выше 38°C), сообщение обновляется на "Лихорадка!". В противном случае, если temp > 38 — False, сообщение не обновляется. Наконец, message возвращается функцией.
def evaluate_temp(temp):
# Установить начальное сообщение
message = "Нормальная температура."
# Обновлять значение сообщения только если температура больше 38
if temp > 38:
message = "Жар!"
return message
В следующей ячейке кода мы вызываем функцию, где температура равна 37°C. Сообщение — «Нормальная температура», поскольку в этом случае температура меньше 38°C (temp > 38 оценивается как False).
print(evaluate_temp(37)) #Нормальная температура.
Однако если температура составляет 39°C, то, поскольку это больше 38°C, сообщение обновляется до «Жар!».
print(evaluate_temp(39)) #Жар!
- Первый уровень отступа обусловлен тем, что нам всегда нужно делать отступ для блока кода внутри функции.
- Второй уровень отступа обусловлен тем, что нам также нужно делать отступ для блока кода, принадлежащего оператору "if". (Как вы увидите, нам также нужно делать отступ для блоков кода для операторов "elif" и "else".)
Обратите внимание, что поскольку оператор return не имеет отступа под оператором "if", он всегда выполняется, независимо от того, является ли temp > 38 истинным или ложным.
Операторы "if ... else"
Мы можем использовать операторы "else" для запуска кода, если оператор False. Код под оператором "if" запускается, если оператор True, а код под "else" запускается, если оператор False.
def evaluate_temp_with_else(temp):
if temp > 38:
message = "Жар!"
else:
message = "Нормальная температура."
return message
Эта функция estimate_temp_with_else() имеет поведение, эквивалентное функции estimate_temp().
В следующей ячейке кода мы вызываем эту новую функцию, где температура составляет 37°C. В этом случае temp > 38 оценивается как False, поэтому выполняется код под оператором "else", и возвращается сообщение "Нормальная температура."
print(evaluate_temp_with_else(37)) #Нормальная температура.
Как и в предыдущей функции, мы делаем отступ в блоках кода после операторов «if» и «else».
Операторы "if ... elif ... else"
Мы можем использовать "elif" (что является сокращением от "else if"), чтобы проверить, могут ли быть истинными несколько условий. Функция ниже: Сначала проверяет, что температура > 38. Если это правда, то сообщение устанавливается на "Жар!".
Пока сообщение еще не установлено, функция проверяет, что температура > 35. Если это правда, то сообщение устанавливается на "Нормальная температура". Затем, если сообщение все еще не установлено, оператор "else" гарантирует, что сообщение устанавливается на "Низкая температура". сообщение выводится.
Вы можете думать, что "elif" говорит ... "хорошо, это предыдущее условие (например, температура > 38) было ложным, поэтому давайте проверим, может ли быть истинным это новое условие (например, температура > 35)!"
def evaluate_temp_with_elif(temp):
if temp > 38:
message = "Жар!"
elif temp > 35:
message = "Нормальная температура."
else:
message = "Низкая температура."
return message
В кодовой ячейке ниже мы запускаем код под оператором "elif", поскольку temp > 38 является False, а temp > 35 является True. После запуска этого кода функция пропускает оператор "else" и возвращает сообщение.
evaluate_temp_with_elif(36) #Нормальная температура.
Наконец, мы пробуем случай, когда температура меньше 35°C. Поскольку условные операторы в операторах «if» и «elif» оба оцениваются как False, выполняется блок кода внутри оператора «else».
evaluate_temp_with_elif(34) #Низкая температура