Python

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

Подписаться
Уведомить о
guest
0 комментариев
Старые
Новые Популярные

Настройки cookie

0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x