← Все вопросы

Что значат is not и not in в Python?

Задан 18 месяцев назад385 просмотров3 ответа
10

Встречаю if x is not None и if 'a' not in s. Это два отдельных оператора или просто not приклеили? Как читать?

3 ответа

19

Это самостоятельные операторы-связки, читаются буквально:

  • x is not None — «x не является None» (проверка идентичности, отрицание is).
  • 'a' not in s — «'a' не содержится в s» (отрицание in).
if name is not None:
    print(name)
if 5 not in [1, 2, 3]:
    print('нет пятёрки')

Читается приятнее, чем not (x is None) или not ('a' in s), хотя результат тот же.

Дмитрий Бутырев is not именно для None/синглтонов, для значений всё равно ==/!= · 18 месяцев назад
6

is not — отрицание is, not in — отрицание in. Читаются как по-английски.

2

Да, можно и not (x in s), но x not in s короче и принято писать так.

Ваш ответ

Войдите, чтобы ответить на вопрос.
Поддержать проект