Различие между False и ложными (falsy) значениями
На этом этапе вы научитесь различать булево значение False
и другие "ложные" (falsy) значения в Python. В Python определенные значения считаются "ложными", потому что в булевом контексте они оцениваются как False
, даже если они явно не равны False
. Понимание различия между ними является важным аспектом при написании точных условных операторов.
К распространенным ложным (falsy) значениям относятся:
False
(булево значение)
None
0
(ноль любого числового типа: int
, float
и т.д.)
""
(пустая строка)
[]
(пустой список)
{}
(пустой словарь)
()
(пустой кортеж)
Давайте изменим файл false_values.py
, чтобы исследовать ложные (falsy) значения. Откройте файл false_values.py
в редакторе VS Code и добавьте следующий код:
def check_falsy(value):
if value:
print(f"{value!r} is truthy")
else:
print(f"{value!r} is falsy")
check_falsy(False)
check_falsy(None)
check_falsy(0)
check_falsy("")
check_falsy([])
check_falsy({})
check_falsy(())
Этот код определяет функцию check_falsy
, которая принимает значение в качестве входных данных и проверяет, является ли оно истинным (truthy) или ложным (falsy) с использованием оператора if
. Затем он вызывает функцию с разными ложными (falsy) значениями. Символ !r
в f-строке гарантирует, что выводится представление значения, что полезно для различения между разными типами пустых значений.
Запустите скрипт:
python ~/project/false_values.py
Вы должны увидеть следующий вывод:
False is falsy
None is falsy
0 is falsy
'' is falsy
[] is falsy
{} is falsy
() is falsy
Этот вывод показывает, что все значения, которые мы передали в функцию check_falsy
, считаются ложными (falsy) в Python.
Теперь давайте посмотрим, как это может повлиять на условные операторы. Измените файл false_values.py
, добавив в него следующий код:
empty_list = []
if empty_list:
print("The list is not empty")
else:
print("The list is empty")
В этом примере мы проверяем, является ли пустой список истинным (truthy) или ложным (falsy). Поскольку пустой список является ложным (falsy), будет выполнен код внутри блока else
.
Запустите скрипт:
python ~/project/false_values.py
Вы должны увидеть следующий вывод:
The list is empty
Понимание ложных (falsy) значений является важным аспектом при написании правильного и эффективного кода на Python. Будьте внимательны к этим значениям при написании условных операторов и убедитесь, что ваш код работает как ожидается.