Назови зарезервированные ключевые слова в Python
Что проверяют
Формально знание списка, фактически то, откуда вы берёте такие факты и отличаете ли ключевые слова от встроенных имён. Ответ «их тридцать пять, а точный список отдаёт модуль keyword» ценнее заученного перечисления в алфавитном порядке.
Как отвечать
Сначала показать, чем это проверяется в одну строку:
import keyword
len(keyword.kwlist) # 35
keyword.iskeyword("is") # True
keyword.softkwlistДальше сгруппировать по смыслу:
- значения:
True,False,None; - логика и сравнение:
and,or,not,in,is; - ветвления и циклы:
if,elif,else,for,while,break,continue,pass; - функции и классы:
def,return,lambda,yield,class,global,nonlocal; - исключения и ресурсы:
try,except,finally,raise,assert,with,as,del; - импорт:
import,from; - асинхронность:
async,await.
Отдельно назвать мягкие ключевые слова: match, case, _ и type. Они особенные только внутри своей конструкции, а в остальном коде остаются обычными именами, поэтому переменную с именем match объявить можно и это не ошибка.
Плюсом идёт история: во второй версии языка print и exec были ключевыми словами, а async и await стали полноценными не сразу после появления.
Где спотыкаются
Записывают в ключевые слова встроенные функции и типы: print, len, list, id, type, str. Это обычные имена из пространства builtins, их разрешено перекрыть: строка list = [1] ошибки не вызовет, а сломает код ниже по файлу.
Второе: путают is и ==. Ключевое слово is сравнивает идентичность объектов, и совпадение для маленьких чисел и коротких строк это следствие кэширования в интерпретаторе, а не правило языка.
Третье: называют ключевым словом self. Это соглашение об именовании первого параметра метода, язык его никак не выделяет, и переименовать его технически можно.