Автор оригинала: Estefania Cassingena Navone.
Добро пожаловать
В этой статье вы узнаете:
- Какие истинные и ложные ценности являются.
- Что делает ценность правды или фальсию.
- Как использовать
Bool ()
функция, чтобы определить, является ли значение правдем или фальсию. - Как сделать объекты от заданных пользователем классов правды или фальсификации, используя специальный метод
__Bool __
Отказ
Давайте начнем! ✨.
🔹 ценности правды против правдоподобных и фальсифицированных ценностей
Позвольте мне представить вам эти концепции, сравнивая их со значениями Правда
и Ложь
что мы обычно работаем.
Выражения с операндами и операторами оценивают либо Правда
или Ложь
И их можно использовать в Если
или в то время как
Состояние, чтобы определить, должен ли код кода выполняться.
Здесь у нас есть пример:
# Expression 5 < 3 >>> if 5 < 3: print("True") else: print("False") # Output False
В этом примере все работает, как мы ожидали, потому что мы использовали выражение с двумя операндами и оператором 5 <3
Отказ
Но что вы думаете, что произойдет, если мы попытаемся запустить этот код?
>>> a = 5 >>> if a: print(a)
Обратите внимание, что теперь у нас нет типичного выражения рядом с Если
Ключевое слово, только переменная:
Удивительно, что вывод:
5
Если мы изменим значение А
до нуля, как это:
>>> a = 0 >>> if a: print(a)
Нет вывода.
Я уверен, что вы должны задавать это прямо сейчас: Что сделал код успешно запущен?
Переменная А
не является типичным выражением. У него нет операторов и операндов, так почему он оценил на Правда
или Ложь
В зависимости от его стоимости?
Ответ лежит на концепции правдоподобных и фальсифицированных ценностей, которые не являются ценностями правды, но они оценивают либо Правда
или Ложь
Отказ
🔸truthy и Falsy ценностей
В Python, индивидуальный Значения может оценить либо Правда
или Ложь
Отказ Они не обязательно должны быть частью большего выражения для оценки ценности правды, потому что у них уже есть тот, который был определен правилами языка Python.
Основные правила:
- Значения, которые оценивают в
Ложь
считаются Falsy Отказ - Значения, которые оценивают в
Правда
считаются Правда Отказ
Согласно Документация Python :
🔹 Логический контекст
Когда мы используем значение как часть большего выражения, или как Если
или в то время как
Состояние, мы используем его в Логический контекст Отказ
Вы можете подумать о булевом контексте как определенную «часть» вашего кода, который требует, чтобы значение было либо Правда
или Ложь
придавать смысл.
Например, (см. Ниже) Состояние после Если
ключевое слово или после в то время как
Ключевое слово должно оценить либо Правда
или Ложь
:
💡 Совет: Значение может быть сохранено в переменной. Мы можем написать имя переменной после Если
или в то время как
Ключевое слово вместо самого значения. Это обеспечит ту же функциональность.
Теперь, когда вы знаете, какие правдивые и ложные ценности являются и как они работают в булевом контексте, давайте посмотрим на реальные примеры правдоподобных и фальсифицированных ценностей.
🔸 Значения Falsy
Последовательности и сборники:
- Пустые списки
[]
- Пустые кортежи
()
- Пустые словари
{}
- Пустые наборы
набор()
- Пустые струны
"" "
- Пустые диапазоны
Диапазон (0)
Числа
- Ноль любого числового типа.
- Целое число:
0.
- Поплавок:
0.0
- Комплекс:
0J.
Константы
Никто
Ложь
Фальсифицированные значения были причиной, почему в нашем первоначальном примере не было вывода, когда значение А
был ноль.
Ценность 0
Является ли ложно, так что Если
Состояние будет Ложь
И условное не будет работать в этом примере:
>>> a = 0 >>> if a: print(a) # No Output
🔹 правдивые ценности
Согласно Документация Python :
Пвердые значения включают в себя:
- Непопустые последовательности или коллекции (списки, кортежи, строки, словари, наборы).
- Числовые значения, которые не являются нуля.
Правда
Вот почему значение А
был напечатан в нашем первоначальном примере, потому что его значение было 5 (правдоподобное значение):
>>> a = 5 >>> if a: print(a) # Output 5
🔸 Встроенная функция Bool ()
Вы можете проверить, является ли значение истинным или ложно со встроенным Bool ()
функция.
Согласно Документация Python Эта функция:
Вам нужно только пройти значение в качестве аргумента, как это:
>>> bool(5) True >>> bool(0) False >>> bool([]) False >>> bool({5, 5}) True >>> bool(-5) True >>> bool(0.0) False >>> bool(None) False >>> bool(1) True >>> bool(range(0)) False >>> bool(set()) False >>> bool({5, 6, 2, 5}) True
💡 Совет: Вы также можете пройти переменную в качестве аргумента для проверки, если его значение является правдой или фальсию.
🔹 реальные примеры
Одним из преимуществ использования правдоподобных и фальсифицированных ценностей является то, что они могут помочь вам сделать ваш код более лаконичным и читаемым. Здесь у нас есть два реальных примера.
Пример: У нас есть эта функция print_even ()
Это принимает аргумент в списке или кортеж, который содержит номера и печатает только значения, которые даже являются. Если аргумент пуст, он печатает описательное сообщение:
def print_even(data): if len(data) > 0: for value in data: if value % 2 == 0: print(value) else: print("The argument cannot be empty")
Обратите внимание на эту строку:
if len(data) > 0:
Мы можем сделать состояние гораздо более лаконичнее с правдой и фальсивыми значениями:
if data:
Если список пуст, данные
будет оценивать Ложь
Отказ Если это не пусто, это будет оценивать Правда
Отказ Мы получаем ту же функциональность с более кратным кодом.
Это будет нашей окончательной функцией:
def print_even(data): if data: for value in data: if value % 2 == 0: print(value) else: print("The argument cannot be empty")
Пример: Мы также могли бы использовать правдивые и фальсифицировать значения для повышения исключения (ошибка), когда аргумент, передаваемый на функцию, недействителен.
>>> def print_even(data): if not data: raise ValueError("The argument data cannot be empty") for value in data: if value % 2 == 0: print(value)
В этом случае, используя не данные
Как состояние Если
Заявление, мы получаем противоположную ценность правды данные
для Если
условие.
Давайте проанализируем не данные
Подробнее:
Если данные
пустой:
- Это будет ложное значение, поэтому
данные
будет оцениватьЛожь
Отказ не данные
будет эквивалентноне ложь
, что этоПравда
Отказ- Состояние будет
Правда
Отказ - Исключение будет повышено.
Если данные
не пусто:
- Это будет правдовая ценность, поэтому он оценивает
Правда
Отказ не данные
будет эквивалентноНе правда
, что этоЛожь
Отказ- Состояние будет
Ложь
Отказ - Исключение не будет повышено.
🔸 Изготовление пользовательских объектов правдивых и фальсифицированных ценностями
Если вы знакомы с классами и объектно-ориентированным программированием, вы можете добавить специальный метод для ваших классов, чтобы ваши объекты действовать как правдоподобные и фальсифицированные значения.
__bool __ ()
С специальным методом __bool __ ()
, вы можете установить «настроенное» условие, которое определит, когда объект вашего класса будет оценивать на Правда
или Ложь
Отказ
Согласно Документация Python :
Например, если у нас есть этот очень простой класс:
>>> class Account: def __init__(self, balance): self.balance = balance
Вы можете видеть, что никаких специальных методов не определены, поэтому все объекты, которые вы создаете из этого класса, всегда будут оценивать на Правда
:
>>> account1 = Account(500) >>> bool(account1) True >>> account2 = Account(0) >>> bool(account2) True
Мы можем настроить это поведение, добавив специальный метод __bool __ ()
:
>>> class Account: def __init__(self, balance): self.balance = balance def __bool__(self): return self.balance > 0
Теперь, если баланс счета больше нуля, объект будет оценивать Правда
Отказ В противном случае, если баланс счета равен нулю, объект будет оценивать Ложь
Отказ
>>> account1 = Account(500) >>> bool(account1) True >>> account2 = Account(0) >>> bool(account2) False
💡 Совет: Если __bool __ () не определен в классе, но __лен __ ()
Метод в том, что значение, возвращенное этим методом, определит, будет ли объект правдивой или фальсию.
🔹 в резюме
- Пвердые значения – это ценности, которые оценивают
Правда
в булевом контексте. - Значения FALSY – это значения, которые оценивают
Ложь
в булевом контексте. - Значения Falsy включают пустые последовательности (списки, кортежи, строки, словари, наборы), ноль в каждом численном виде,
Нет
иЛожь
Отказ - Пвердые значения включают непустые последовательности, цифры (кроме
0
в каждом числовом типе) и в основном каждое значение, которое не является фальсию. - Их можно использовать, чтобы ваш код более лаконичным.
Я действительно надеюсь, тебе понравилась моя статья и обнаружила, что это полезно. Теперь вы можете работать с правдоподобными ценностями в ваших проектах Python. Проверьте мои онлайн-курсы Отказ Следуй за мной на Twitter Отказ ⭐️.