Читать книгу 100 задач по Python: отладка кода - - Страница 2
Глава 2. Функции Python
ОглавлениеВ Python нет “команд” как отдельной сущности: обычно под этим понимают ключевые слова (keywords) и встроенные функции (built-ins). Ниже – списки с кратким синтаксисом.
Ключевые слова Python (keywords)
Литералы и логика
True, False – булевы значения
Синтаксис: x = True
None – отсутствие значения
Синтаксис: x = None
and, or, not – логические операторы
Синтаксис: a and b, a or b, not a
is, is not – тождество объектов
Синтаксис: a is b, a is not b
in, not in – принадлежность
Синтаксис: x in seq, x not in seq
Условия
if / elif / else
Синтаксис: if cond: … elif other_cond: … else: …
Циклы и управление потоком
for
Синтаксис: for item in iterable: …
while
Синтаксис: while cond: …
break – выход из цикла
Синтаксис: break
continue – следующая итерация
Синтаксис: continue
pass – пустой оператор (заглушка)
Синтаксис: pass
else в циклах – выполнится, если цикл завершился без break
Синтаксис: for x in xs: … else: …
Функции
def – объявление функции
Синтаксис: def name(params): … return value
return – возврат значения
Синтаксис: return expr / return
lambda – анонимная функция
Синтаксис: lambda args: expression
Исключения
try / except / else / finally
Синтаксис: try: … except SomeError as e: … else: … finally: …
raise – выбросить исключение
Синтаксис: raise ErrorType("message") или raise
assert – проверка утверждения
Синтаксис: assert condition, "message"
Контекстный менеджер
with – вход/выход из контекста
Синтаксис: with expr as var: …
Импорт
import
Синтаксис: import module / import module as alias
from … import …
Синтаксис: from module import name / from module import name as alias / from module import *
Классы и области видимости
class – объявление класса
Синтаксис: class Name(Base): …
global – имя из глобальной области
Синтаксис: global x
nonlocal – имя из внешней (но не глобальной) области
Синтаксис: nonlocal x
Генераторы
yield – вернуть значение из генератора
Синтаксис: yield expr
yield from – делегировать генерацию
Синтаксис: yield from iterable
Удаление
del – удалить имя/элемент/срез
Синтаксис: del name, del a[i], del a[i:j]
Асинхронность
async def – асинхронная функция
Синтаксис: async def f(): …
await – ожидание
Синтаксис: result = await coro
async for
Синтаксис: async for item in aiter: …
async with
Синтаксис: async with expr as var: …
Структурное сопоставление (Python 3.10+)
match / case
Синтаксис: match value: case pattern: … case _: …
2) Встроенные функции Python (built-in functions)
Приведение типов и конструкторы
bool(x=False)
int(x=0, base=10)
float(x=0.0)
complex(real=0, imag=0)
str(obj="")
bytes(source=b"", encoding=None, errors="strict")
bytearray(source=b"", encoding=None, errors="strict")
memoryview(obj)
list(iterable=())
tuple(iterable=())
set(iterable=())
frozenset(iterable=())
dict(mapping_or_iterable=(), kwargs)
range(stop) / range(start, stop[, step])
Числа и агрегирование
abs(x)
round(number[, ndigits])
pow(base, exp[, mod])
divmod(a, b)
sum(iterable, start=0)
min(iterable, *[, key, default]) / min(a, b, … *[, key])
max(iterable, *[, key, default]) / max(a, b, … *[, key])
Проверки и сравнения
all(iterable)
any(iterable)
isinstance(obj, classinfo)
issubclass(cls, classinfo)
callable(obj)
Последовательности, итераторы, преобразования
len(s)
sorted(iterable, *, key=None, reverse=False)
reversed(seq)
enumerate(iterable, start=0)
zip(*iterables, strict=False)
map(func, iterable, …)
filter(func, iterable)
iter(obj[, sentinel])
next(iterator[, default])
slice(stop) / slice(start, stop[, step])
Ввод/вывод
print(*objects, sep=" ", end="\n", file=None, flush=False)
input([prompt])
Атрибуты и интроспекция объектов
type(obj) / type(name, bases, dict)
id(obj)
hash(obj)
repr(obj)
format(value[, format_spec])
ascii(obj)
getattr(obj, name[, default])
setattr(obj, name, value)
hasattr(obj, name)
delattr(obj, name)
dir([obj])
Пространства имён, выполнение кода
globals()
locals()
vars([obj])
eval(expression[, globals[, locals]])
exec(object[, globals[, locals]])
compile(source, filename, mode, flags=0, dont_inherit=False, optimize=-1)
Файлы
open(file, mode="r", buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
ООП и дескрипторы
object()
super([type[, obj]])
property(fget=None, fset=None, fdel=None, doc=None)
classmethod(function)
staticmethod(function)
Документация и отладка
help([object])
breakpoint(*args, kws)
Unicode и представления чисел
ord(c)
chr(i)
bin(x)
oct(x)
hex(x)
Асинхронные итераторы (в новых Python 3.x)
aiter(async_iterable)
anext(async_iterator[, default])
Низкоуровневый импорт
__import__(name, globals=None, locals=None, fromlist=(), level=0)
3) Часто путают с “встроенными командами”, но это синтаксис (не функции)
Операторы (не built-ins)
Арифметика: + – * / // %
Сравнение: == != < <= > >=
Побитовые: & | ^ ~ << >>
Присваивание: =, а также += -= *= /= //= %= = &= |= ^= <<= >>=
Присваивание в выражении: :=
Индексация/срезы: a[i], a[i:j], a[i:j:k]
Литералы коллекций
Список: [1, 2, 3]
Кортеж: (1, 2)
Множество: {1, 2}
Словарь: {"a": 1}
Генератор: (f(x) for x in xs)
Включения: [f(x) for x in xs if cond], {…}, {k: v …}