Python шпаргалка со всеми ключевыми словами

Ключевые слова Python нельзя использовать как имена переменных, функций и классов. Они управляют синтаксисом языка: условиями, циклами, функциями, классами, импортом, ошибками и асинхронным кодом

Проверить актуальный список для своей версии Python можно так

import keyword

print(keyword.kwlist)
print(keyword.softkwlist)

По этой теме полезно отдельно посмотреть Составьте еженедельное расписание занятий, чтобы расширить контекст и сравнить подходы

По этой теме полезно отдельно посмотреть Аннотации типов для декораторов в Python, чтобы расширить контекст и сравнить подходы

Логика и условия

СловоДля чего нужно
ifусловие
elifдополнительное условие
elseветка по умолчанию
andоба условия истинны
orхотя бы одно условие истинно
notотрицание
isсравнение идентичности
inпроверка вхождения
Trueистина
Falseложь
Noneотсутствие значения
value = None

if value is None:
    print("значения нет")

Циклы

СловоДля чего нужно
forцикл по коллекции
whileцикл по условию
breakостановить цикл
continueперейти к следующему шагу
for number in range(1, 4):
    if number == 2:
        continue
    print(number)

Функции и классы

СловоДля чего нужно
defобъявить функцию
returnвернуть результат
lambdaкороткая анонимная функция
yieldвернуть значение из генератора
classобъявить класс
passпустой блок
def double(number):
    return number * 2

print(double(5))

Ошибки и контекст

СловоДля чего нужно
tryвыполнить рискованный код
exceptобработать ошибку
finallyвыполнить блок в конце
raiseвызвать ошибку
assertпроверить предположение
withоткрыть контекст
asдать имя внутри контекста или импорта
try:
    value = int("42")
except ValueError:
    value = 0

print(value)

Импорт и область видимости

СловоДля чего нужно
importподключить модуль
fromимпортировать из модуля
globalобратиться к глобальному имени
nonlocalобратиться к имени из внешней функции
delудалить имя или элемент
from pathlib import Path

print(Path.cwd())

Асинхронность

СловоДля чего нужно
asyncобъявить асинхронную функцию
awaitдождаться результата

Эти слова нужны в асинхронном коде: сетевые запросы, боты, серверы, параллельное ожидание операций

Soft keywords

match, case и _ могут иметь специальный смысл в сопоставлении с образцом, но не всегда ведут себя как обычные зарезервированные слова

status = "ready"

match status:
    case "ready":
        print("готово")
    case _:
        print("другой статус")

Ключевые слова и встроенные имена

list, dict, str, sum, type, id не являются ключевыми словами, но это встроенные имена. Их лучше не использовать как переменные

items = [1, 2, 3]
print(sum(items))

Плохой вариант

sum = 10

Так код перекрывает встроенную функцию sum

Проверка имени переменной

import keyword

names = ["class", "user_name", "for", "total"]

for name in names:
    print(name, keyword.iskeyword(name))

Почему ключевые слова нельзя учить списком

Ключевые слова Python лучше группировать по смыслу. Тогда становится понятно, где они появляются в коде и почему их нельзя использовать как имена переменных

ГруппаСловаГде встречаются
условияif, elif, else, match, caseвыбор ветки
циклыfor, while, break, continueповторение действий
функцииdef, return, lambda, yieldсоздание поведения
классыclass, self не keywordописание объектов
ошибкиtry, except, finally, raise, assertобработка проблем
импортimport, from, asподключение модулей
логикаand, or, not, is, inусловия и сравнения
контекстwithбезопасная работа с ресурсами
import keyword

print(keyword.kwlist)
print(keyword.iskeyword("class"))
print(keyword.iskeyword("username"))

Как keyword ломает переменную

Если назвать переменную ключевым словом, Python не сможет понять код

# так нельзя
# class = "Python"

class_name = "Python"
print(class_name)

Похожая проблема бывает со встроенными именами. list, dict, str, sum не являются ключевыми словами, но использовать их как переменные все равно плохая идея

items = [1, 2, 3]
total = sum(items)

print(total)

Где встречаются редкие слова

yield нужен для генераторов, global и nonlocal меняют область видимости, async и await используются в асинхронном коде. Новичку не обязательно сразу применять их в проектах, но полезно узнавать их при чтении чужого кода

def numbers():
    yield 1
    yield 2

for number in numbers():
    print(number)

Самопроверка

Возьмите любое имя переменной и проверьте его через keyword.iskeyword(). Потом проверьте, не совпадает ли оно с популярными встроенными именами: list, dict, str, int, sum, max, min, input, print

Оцените статью
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x