Истинность выражений

Программисту часто приходится в зависимости от значения выражения принимать какие-то решения. Мы уже знаем, что в условных операторах обычно используются предикаты или значения типа bool. Так вот, в Python значения многих других типов могут быть истинны или ложны «по смыслу», т.е. могут выступать в роли предикатов!

Например, пустая строка, если её использовать в качестве условия, будет означать «ложь», а непустая — «истину»!

Пример:

def test_emptiness(string):
    if string:
        return 'non-empty'
    return 'empty'

print(test_emptiness('foo'))  # => 'non-empty'
print(test_emptiness(''))     # => 'empty'

Число тоже «ложно», если равно нулю и «истинно», если отлично от нуля.

Пример:

def can_divide_by(number):
    if number:
        return 'Yes, you can!'
    return "No, you can't"

print(can_divide_by(10))  # => 'Yes, you can!'
print(can_divide_by(0))   # => "No, you can't"

Чтобы узнать, «истинно» ли некое значение или «ложно», можно воспользоваться функцией bool. Достаточно передать этой функции значение любого типа!

print(bool(0))    # => False
print(bool(10))   # => True
print(bool(''))   # => False
print(bool('a'))  # => True

Задание

Напишите функцию is_falsy, которая проверяет, трактуется ли переданное значение, как ложное с точки зрения Python. Можете использовать упомянутую выше функцию bool.


Советы


Нашли ошибку? Есть что добавить? Пулреквесты приветствуютсяhttps://github.com/hexlet-basics

Упражнение доступно только авторизованным пользователям.

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