None
Данная константа, является единственным значением для типа NoneType .
None обычно используют для обозначения того, что конкретное значение отсуствует.
Например, для обозначения параметра по умолчанию какой-либо функции.
# Присвоение значения невозможно
None = 10 # SyntaxError: can't assign to keyword
# Использование в качестве значения параметра по умолчанию.
def print_some(value=None):
# Если значение не передано, используем some.
value = value or 'some'
print(value)
print_some() # some
# Проверки на None
# производятся при помощи is, а не ==
if something is None:
pass
if something is not None:
pass
Синонимы поиска: None, null
Как проверить на none python


Скачай курс
в приложении
Перейти в приложение
Открыть мобильную версию сайта
© 2013 — 2023. Stepik
Наши условия использования и конфиденциальности

Public user contributions licensed under cc-wiki license with attribution required
[Python] Проверка на None с присваиванием
Кто-нибудь знает, как в таком выражении проверить, что curr.fetchone() не является None и сразу присвоить его тьюплу, а то пытаюсь сделать так, но если юзверя нет в бд, то вылазит экзепшн TypeError: ‘NoneType’ object is not iterable. Вот думаю, кроме отлова исключения есть ли способы?
curr.execute(‘SELECT (passwd) FROM users WHERE login = (%s)’, (login,))
(gotpasswd,) = curr.fetchone()

BuG2BuG ★
16.07.08 13:30:29 MSD

Re: [Python] Проверка на None с присваиванием
Отлов исключения — это как раз правильный путь в этой ситуации. Иначе код получается хуже.
Davidov ★★★★
( 16.07.08 13:31:59 MSD )
Ответ на: Re: [Python] Проверка на None с присваиванием от Davidov 16.07.08 13:31:59 MSD

Re: [Python] Проверка на None с присваиванием
Благодарю Вас. Попробую всё таки отловом. Просто думал, может в языке есть какие-нибудь средства для подобных вещей, чтобы «по-простому».
BuG2BuG ★
( 16.07.08 13:50:00 MSD ) автор топика
Ответ на: Re: [Python] Проверка на None с присваиванием от BuG2BuG 16.07.08 13:50:00 MSD
Re: [Python] Проверка на None с присваиванием
Для полноты ответа, приведу такой вариант (безусловно лучше ловит эксепшены) Python 2.5.2 (r252:60911, Feb 22 2008, 07:57:53) [GCC 4.0.1 (Apple Computer, Inc. build 5363)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> a = None >>> b = (1,) >>> c = None if a is None else a >>> print c None >>> c = None if b is None else b >>> print c (1,)
None (null), или немного о типе NoneType

Ключевое слово null обычно используется во многих языках программирования, таких как Java, C++, C# и JavaScript. Это значение, которое присваивается переменной.
Концепция ключевого слова null в том, что она дает переменной нейтральное или «нулевое» поведение.
А что же в Python?
Эквивалент null в Python: None
Он был разработан таким образом, по двум причинам:
Многие утверждают, что слово null несколько эзотерично. Это не наиболее дружелюбное слово для новичков. Кроме того, None относится именно к требуемой функциональности — это ничего, и не имеет поведения.
Присвоить переменной значение None очень просто:
Существует много случаев, когда следует использовать None.
Часто вы хотите выполнить действие, которое может работать либо завершиться неудачно. Используя None, вы можете проверить успех действия. Вот пример:
Python является объектно-ориентированным, и поэтому None - тоже объект, и имеет свой тип.
Проверка на None
Есть (формально) два способа проверить, на равенство None.
Один из способов — с помощью ключевого слова is.
Второй — с помощью == (но никогда не пользуйтесь вторым способом, и я попробую объяснить, почему).
Посмотрим на примеры:
Данный код выведет:
Отлично, так они делают одно и то же! Однако, не совсем. Для встроенных типов - да. Но с пользовательскими классами вы должны быть осторожны. Python предоставляет возможность переопределения операторов сравнения в пользовательских классах. Таким образом, вы можете сравнить классы, например, MyObject == MyOtherObject.
И получаем немного неожиданный результат:
Интересно, не правда ли? Вот поэтому нужно проверять на None с помощью ключевого слова is.
А ещё (для некоторых классов) вызов метода __eq__ может занимать много времени, и is будет просто-напросто быстрее.
Для вставки кода на Python в комментарий заключайте его в теги
- Модуль csv - чтение и запись CSV файлов
- Создаём сайт на Django, используя хорошие практики. Часть 1: создаём проект
- Онлайн-обучение Python: сравнение популярных программ
- Книги о Python
- GUI (графический интерфейс пользователя)
- Курсы Python
- Модули
- Новости мира Python
- NumPy
- Обработка данных
- Основы программирования
- Примеры программ
- Типы данных в Python
- Видео
- Python для Web
- Работа для Python-программистов
- Сделай свой вклад в развитие сайта!
- Самоучитель Python
- Карта сайта
- Отзывы на книги по Python
- Реклама на сайте
