Простой Python. современный стиль программирования - читать онлайн бесплатно полную версию книги . Страница 88

если функция ничего не возвращает. Оно не является булевым значением False,

несмотря на то что похоже на него при проверке булевой переменной. Рассмотрим

пример:

>>> thing = None

>>> if thing:

... print("It's some thing")

Функции

121

... else:

... print("It's no thing")

...

It's no thing

Для того чтобы понять важность отличия None от булева значения False, ис-

пользуйте оператор is:

>>> if thing is None:

... print("It's nothing")

... else:

... print("It's something")

...

It's nothing

Разница кажется небольшой, однако она важна в Python. None потребуется

вам, чтобы отличить отсутствующее значение от пустого. Помните, что цело-

численные нули, нули с плавающей точкой, пустые строки (''), списки ([]),

кортежи ((,)), словари ({}) и множества (set()) все равны False, но не равны

None.

Напишем небольшую функцию, которая выводит на экран проверку на ра-

венство None:

>>> def is_none(thing):

... if thing is None:

... print("It's None")

... elif thing:

... print("It's True")

... else:

... print("It's False")

...

Теперь выполним несколько проверок:

>>> is_none(None)

It's None

>>> is_none(True)

It's True

>>> is_none(False)

It's False

>>> is_none(0)

It's False

>>> is_none(0.0)

It's False

>>> is_none(())

It's False

>>> is_none([])

It's False