Используйте сравнение с None, если вы этого хотите.Используйте «если не значение», если вы просто хотите проверить, считается ли значение ложным (пустой список, нет, ложь).
Я считаю, что «если не значение» выглядит чище и Pythonic.
Также будьте осторожны со списками.Вы не должны использовать это при сравнении для пустого списка.Если вы знаете, что получаете список, используйте «if», чтобы проверить, есть ли в нем содержимое (или len ()).Попробуйте ввести это в интерпретаторе:
>>> a = []
>>> a is []
False
Это потому, что только что созданный вами временный список имеет в памяти другой адрес, чем тот, который хранится в «a».Вы не видите этого с None, False или True, потому что все эти значения являются одиночными (все они относятся к одному и тому же разделу памяти), поэтому использование ключевого слова is работает.
также найдите, что CPython интернирует строки, поэтому работает следующее:
>>> 'a' is 'a'
True
Вы должны не полагаться на это.Это деталь реализации, и она не указана для работы с каждой версией Python.