Найти в Дзене
@coolcoders

Встроенные функции часть 1

Интерпретатор Python имеет ряд встроенных функций и типов, которые всегда доступны. Они перечислены здесь в алфавитном порядке. abs(x) Возвращает абсолютную величину. x: Целое, либо число с плавающей точкой. Для комплексного числа возвращает его модуль. Пример: abs(2) # 2
abs(-2) # 2
abs(2.2) # 2.2
abs(-2.2) # 2.2
abs(complex(1, 2)) # 2.23606797749979
abs(-complex(1, 2)) # 2.23606797749979 any(iterable) Проверяет, все ли указанные элементы принимают значение «истина» iterable: Объект, поддерживающий итерирование. Вернёт True, если все элементы итерируемого объекта представляются истиной (True). Внимание. Также возвращает True, если итерируемый объект пуст.\ Пример: all([True, True, False]) # False
all([True, True, True]) # True
all([1, 2, 0]) # False
all([1, 2, 3]) # True any(iterable) Проверяет, есть ли среди указанных элементов хотя бы один, принимающий значение «истина» iterable: Объект, поддерживающий итерирование. Вернёт True, если любой из элементов итерируемого объ
Оглавление

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

abs(x)

Возвращает абсолютную величину.

x: Целое, либо число с плавающей точкой.

Для комплексного числа возвращает его модуль.

Пример:

abs(2) # 2
abs(-2)
# 2
abs(2.2)
# 2.2
abs(-2.2)
# 2.2
abs(complex(1, 2))
# 2.23606797749979
abs(-complex(1, 2))
# 2.23606797749979

any(iterable)

Проверяет, все ли указанные элементы принимают значение «истина»

iterable: Объект, поддерживающий итерирование.

Вернёт True, если все элементы итерируемого объекта представляются истиной (True).

Внимание. Также возвращает True, если итерируемый объект пуст.\

Пример:

all([True, True, False]) # False
all([
True, True, True]) # True

all([1, 2, 0])
# False
all([1, 2, 3])
# True

any(iterable)

Проверяет, есть ли среди указанных элементов хотя бы один, принимающий значение «истина»

iterable: Объект, поддерживающий итерирование.

Вернёт True, если любой из элементов итерируемого объекта явится истиной.

ВниманиеВозвращает False, если итерируемый объект пуст.

Пример:

any([]) # False

any([
False]) # False
any([
False, True]) # True

any([0])
# False
any([0, 1])
# True

ascii(object)

Возвращает строковое представление объекта с экранированными не-ASCII символами

object: Объект, для которого требуется создать строковое представление.

Как и repr(), возвращает строковое представление объекта object, но при этом экранирует не-ASCII символы, возвращённые repr() при помощи \x, \u или \U.

Пример:

value = 'cat-кот'

repr(value)
# 'cat-кот'

ascii(value)
# 'cat-\\u043a\\u043e\\u0442'

bin(х)

Преобразует целое число в двоичную строку.

x: Целое число. Если x не является объектом int, следует определить для него метод __index__(), возвращающий целое.

Преобразует целое число в двоичную строку. Результатом будет полноценное Python-выражение.

Пример:

bin(3) # '0b11'

bin(-10) #
'-0b1010'

Если нежелателен префикс «0b», вы можете использовать любой из следующих способов.

format(14, '#b'), format(14, 'b') # ('0b1110', '1110') f'{14:#b}', f'{14:b}' # ('0b1110', '1110')

breakpoint()

Позволяет ставить точки останова для последующей отладки кода с помощью встроенного модуля pdb. Скоро на нашем канале выйдет статья с подробным описанием этого модуля и breakpoint() в частности. А вот и статья

класс bytes ([source[, encoding[, errors]]])

Возвращает объект bytes.

Для английских символов 1 символ занимает 18 байт в памяти python. Добавление символа добавляет 1 байт.

Для русских символов 1 символ занимает 19 байт в памяти python. Добавление символа добавляет 2 байта.

Пример:

b'bytes' # b'bytes'

'Байты'.encode('utf-8') #
b'\xd0\x91\xd0\xb0\xd0\xb9\xd1\x82\xd1\x8b'

bytes('bytes', encoding = 'utf-8') #
b'bytes'

bytes([50, 100, 76, 72, 41]) #
b'2dLH)'

Функция bytes принимает список чисел от 0 до 255 и возвращает байты, получающиеся применением функции chr().

класс bytearray([source[, encoding[, errors]]])

Bytearray - это массив байт. От типа bytes отличается только тем, что является изменяемым. Про него, в общем-то, больше рассказать нечего.

callable(obj)

Возвращает True для объекта, поддерживающего вызов.

obj: Объект, который следует проверить на поддержку вызова.

Вернёт True, если obj поддерживает возможность вызова, иначе — False.

Пример:

callable(sum) # True
callable(int)
# True
callable(1)
# False

chr(i)

Возвращает символ по его числовому представлению.

i: Целое, которое следует представить в виде символа.

chr(97) # a

Возвращает символ (в виде строки), чья позиция кода для Юникод равна указанному целому i. Аргумент должен располагаться в пределах от 0 до 1,114,111, в противном случае возбуждается исключение ValueError.

@classmethod

Представляет указанную функцию методом класса.

function: Функция, которую следует представить методом класса.

В метод класса первым аргументом неявным образом передаётся класс (аналогично метод экземпляра получает в первом аргументе сам экземпляр).

Для удобного объявления метода класса используйте classmethod в виде декоратора(@):

Пример:

class MyClass:

@classmethod
def method(cls, arg):
print('%s classmethod. %d' % (cls.__name__, arg))

@classmethod
def call_original_method(cls):
cls.method(5)

def call_class_method(self):
self.method(10)


class MySubclass(MyClass):

@classmethod
def call_original_method(cls):
cls.method(6)


# Вызываем методы класса через класс.
MyClass.method(0)
# MyClass classmethod. 0
MyClass.call_original_method()
# MyClass classmethod. 5

MySubclass.method(0)
# MySubclass classmethod. 0
MySubclass.call_original_method()
# MySubclass classmethod. 6

# Вызываем методы класса через объект.
my_obj = MyClass()
my_obj.method(1)
# MyClass classmethod. 1
my_obj.call_class_method()
# MyClass classmethod. 10

Из примеров выше видно, что метод может вызываться как через класс — MyClass.method() —, так и через экземпляр — MyClass().method(). При вызове метода из наследника в первом аргументе метод получит класс этого самого наследника.

compile(source, filename, mode, flags=0, dont_inherit=False, optimize=-1)

Компилирует исходный код в объект кода, либо объект асд

source: Строка, строка байт.

filename: Файл, из которого прочитан код. Если код не был считан из файла, можно передать любое значение, например строку <string>.

mode: Режим компиляции кода: exec, если код состоит из последовательности инструкций; eval, если код содержит одно выражение; single, если код состоит из одной инструкции. Если код содержит несколько строк, то при использовании режимов single и eval (а до версии 3.2 ещё и exec), нужно завершить ввод не меньшей мере одним символом перевода строки.

flags=0: Указывает, какие инструкции из __future__ следует использовать. Указывается битами, которые можно OR-ить, чтобы задать несколько инструкций. Биты можно подсмотреть в __future__._Feature.compiler_flag. См. PEP 236.

dont_inherit=False: Следует ли использовать __future__ определенные в коде, вызвавшем compile(), в дополнение в тем, что указаны во flags.

optimize=-1: Задаёт уровень оптимизации компилятора: -1 — использовать настройки интерпретатора (регулируются опцией -O); 0 — не оптимизировать, включить __debug__; 1 — убрать инструкции asserts, выключить __debug__; 2 — убрать ещё и строки документации.

Пример:

compiled = compile('y = x + 1', '<string>', 'exec')

Если исходный код содержит ошибку возбуждается исключение SyntaxError, если он содержит нулевые байты — исключение TypeError.

Объекты кода могут быть исполнены при помощи exec() или eval().

delattr(obj, name)

Удаляет из объекта указанный атрибут.

obj: Объект, из которого следует удалить атрибут.

name: Строка с именем атрибута, который должен быть удалён из указанного объекта.

Атрибут объекта (свойство, метод, элемент) будет удалён в случае, если объект разрешает/поддерживает это действие.

Метод зачастую используется в случаях, когда имя атрибута заранее неизвестно и содержится в переменной.

Для возвращения атрибута используется getattr().
Для установки атрибута используется setattr().
Для проверки существования атрибута используется hasattr().

dir(obj)

Возвращает имена [переменных], доступные в локальной области, либо атрибуты указанного объекта в алфавитном порядке.

obj : Объект, для которого следует вернуть имена атрибутов.

При вызове без аргумента, возвращает имена [переменных], доступные в локальной области, иначе — атрибуты указанного объекта.

Пример:

dir(int) # ['__abs__', '__add__', '__and__', '__bool__', ... ]
dir('some')
# ['__add__', '__class__', '__contains__', '__delattr__', ... ]

Определение в классе метода __dir__(), возвращающего список и имён, позволяет варьировать результат выполнения данной функии для экземпляров класса. Это может быть особенно полезно, когда класс определяет также методы доступа к атрибутам: __getattr__() и __getattribute__().

Для объектов, класс которых не определил __dir__(), функция попытается определить атрибуты по данным __dict__.

Возвращаемый список может включать не все атрибуты, особенно в случаях с переопределенным __getattr__().

Механизм извлечения имён может быть реализован по разному для различных типов:
1. Если объект является модулем, список будет содержать имена атрибутов модуля;
2. Если объект является типом или классом, список будет содержать имена атрибутов данного объекта и его родителей (вычисляются рекурсивно).
3. В других случаях список будет содержать имена атрибутов самого объекта, его класса, и классов-родителей (вычисляются рекурсивно).

Рассматриваемая функция по большей части используется в интерактивном режиме интерпретатора, и заточена на выдачу скорее наиболее интересных атрибутов, нежели исчерпывающего их списка, а потому её поведение может меняться от выпуска к выпуску. Так, например, если объектом является класс, то атрибуты его метакласса возвращены не будут.

divmod(a, b)

Возвращает пару частное-остаток от деления аргументов.

a: Число. Делимое.

b: Число. Делитель.

Если аргументы являются разными типами, действуют правила двоичной арифметики.

Пример:

divmod(1, 2) # (0, 1)
divmod(-1, 2)
# (-1, 1)
divmod(-1, -2)
# (0, -1)
divmod(1.0, 2)
# (0.0, 1.0)

Для целых результат аналогичен (a // b, a % b).

ВниманиеНачиная с python 2.3 оператор не поддерживается комплексными числами. В таких случаях, если применимо, следует получить сначала число с плавающей запятой при помощи функции abs().

enumerate(iterable, start=0)

Возвращает генератор, отдающий пары счётчик-элемент для элементов указанной последовательности.

sequence: Любая последовательность, итератор, или объект, поддерживающий итерирование.

start=0: Начальное значение счётчика.Функция применяется в случаях, когда необходим счётчик количества элементов в последовательности.

Позволяет избавиться от необходимости инициализировать и обновлять отдельную переменную-счётчик:

sequence = [1, 2, 7, 19]
# Сравните:
idx = 0
for item in sequence:
print(idx)
idx += 1 #
1, 2, 7, 19

for idx, item in enumerate(sequence):
print(idx, item)
# 0 1
# 1 2
# 2 7
# 3 19

eval(expression[, globals[, locals]])

Разбирает и исполняет указанное выражение.

expression: Выражение, которое требуется исполнить, в виде строки. Либо объект кода.

globals=None: Ожидается dict. Словарь глобального пространства, относительно которого следует исполнить выражение. Если указан, но не содержит атрибута __builtins__ данные указанного пространства будут дополнены данными общего глобального пространства, перед разбором выражения. Таким образом, выражение будет иметь доступ ко всем встроенным модулям.

locals=None: Ожидается объект-отображение (например, dict). Локальное пространство, в котором следует исполнить выражение. Если не указано, то используется словарь глобального пространства.Если оба аргумента опущены, то выражение будет выполнено в среде, где был осуществлён вызов функции.
В случае ошибок возбуждает SyntaxError.

Пример:

x = 1
eval('x+1')
# 2

Данная функция также может быть использована для выполнения произвольных объектов кода, например тех, что возвращает compile().

Если объект кода собран в режиме exec будет возвращено None.

exec(obj[, globals[, locals]])

Динамически исполняет указанный код.

obj: Строка кода, либо объект кода. Поддерживается ввод данных из файлов (считываются до EOF). Если передана строка, она разбирается в набор инструкций, который потом исполняется (если отсутствуют синтаксические ошибки). Если передан объект кода, то он исполняется. Необязательные аргументы (см. ниже) могут быть указаны в виде кортежа прямо после инструкции.

globals: Ожидается dict. Словарь глобального пространства, относительно которого следует исполнить код. Если locals не передан, будет использован globals. Если словарь не имеет значения по ключу __builtins__, на это место вставляется ссылка на значение аналогичного атрибута глобального пространства. Модифицировав __builtins__ словаря передаваемого в функцию, вы можете контролировать, какие какие из встроенных инструментов будут доступны коду.

locals: Ожидается объект-отображение (например, dict). Локальное пространство, в котором следует исполнить код.Если дополнительные параметры опущены, код исполняется в текущем пространстве.

Пример:

x = 1
exec('x = 2')
x
# 2

filter(function, iterable)

При помощи указанной функции фильтрует элементы переданного объекта.

function: Фильтрующая функция. Должна принимать элемент фильтруемого объекта. Если функция вернёт False, данный элемент не попадёт в результат. Если передано None, считается что требуется применить тождественное отображение (lambda *args: args), таким образом все элементы, оцениваемые как False будут отфильтрованы.

iterable: Объект, элементы которого следует отфильтровать. Может быть последовательностью, объектом поддерживающим итерирование, либо итератором.

Пример:

filtered = filter(None, [1, 0, 2, '', 4])
list(filtered)
# [1, 2, 4]

filtered = filter(
lambda value: 'a' in value, ['', 'a', 'b', 'fa'])
list(filtered)
# ['a', 'fa']

# Далее для Python 2
filtered = filter(
None, (1, 0, 2, '', 4))
filtered
# (1, 2, 4)

filtered = filter(
lambda value: value == 'a', 'abrakadabra')
filtered
# 'aaaaa'

format(value[, format_spec])

Форматирует указанное значение.

value: Значение, которое требуется отформатировать.

format_spec: Настройки формата, в соответствии с которыми требуется выполнить форматирование. Интерпретация настроек зависит от типа значения. По умолчанию — пустая строка (обычно приводит к тому же эффекту, что и применение str()).Интерпретация настроек форматирования зависит от типа переданного значения, однако большинство встроенных типов используют общий мини-язык форматирования.

Пример:

format(5) # '5'
format(5, '.2f')
# '5.00'
format(5, '+^8.2f')
# '++5.00++'

класс frozenset([iterable])

Те же множества(set) , но frozenset изменяемый тип данных

getattr(object, name[, default])

Возвращает значение атрибута объекта.

obj: object Объект, значение атрибута которого требуется получить.

name: str Имя атрибута, значение которого требуется получить.

default: Значение по умолчанию, которое будет возвращено, если объект не располагает указанным атрибутом. Если не задано, и атрибут отсутствует, возбуждается исключение AttributeError.Функция возвращает значение атрибута указанного объекта по имени.

Обычно используется в тех случаях, когда объект и/или имя атрибута может варьироваться (является переменной).

Пример:

getattr(myobj, 'myattr')

# То же, что и
myobj.myattr

Для установки атрибута используется setattr().
Для удаления атрибута используется delattr().
Для проверки существования атрибута используется hasattr().

globals()

Возвращает словарь с глобальной таблицей символов, определённых в модуле.

Возвращает словарь с глобальной таблицей символов — словарь текущего модуля.

Пример:

print(globals())

{
'__name__': '__main__',
'__doc__':
None,
'__package__':
None,
'__spec__':
None,
'__annotations__': {},
'__builtins__': <module 'builtins' (built-
in)>,
[...]
}

Если вызвана внутри функции/метода возвращает словарь модуля, в котором функция или метод определены, но не модуля из которых они были вызваны.

Для получения текущей локальной таблицы символов используйте locals().

hasattr(obj, name)

Возвращает флаг, указывающий на то, содержит ли объект указанный атрибут.

obj: object Объект, существование атрибута в котором нужно проверить.

name: str Имя атрибута, существование которого требуется проверить.

Возвращает True, если атрибут существует, иначе — False.

Функция основывается на вызове getattr() с последующей проверкой на предмет случившегося исключения.

Для возвращения атрибута используется getattr().
Для установки атрибута используется setattr().
Для удаления атрибута используется delattr().

hash(obj)

Возвращает хеш указанного объекта.

obj: Объект, хеш которого требуется получить.Возвращает целое являющееся хешем объекта.

Хеш используется, в частности, для быстрого сравнения ключей при поиске по словарям.

Равные числовые значения имеют одинаковый хеш, даже если значения принадлежат разным типам (например, 1 и 1.0).

Пример:

hash(1) # 1
hash(1.0)
# 1

hash('some')
# 4393813469649155798

hash(tuple())
# 3527539
hash({})
# TypeError: unhashable type: 'dict'

help([object])

Вызывает встроенную справочную систему.

obj: Если передана строка, то производится попытка интерпретировать её как имя модуля, функции, класса, метода, или раздела документации, после чего справка выводится в консоль. Если передан объект любого другого типа, страница справки генерируется по его данным.

Функция предназначена в основном для использования в интерактивном режиме интерпретатора.

Если функция вызвана без аргументов, справочная система запускается в интерактивном режиме.

Пример:

help(str.split)
# Help on method_descriptor:
# split(...)
#
S.split(sep=None, maxsplit=-1) -> list of strings
# ...

hex(х)

Возвращает строку с шестнадцатеричным представлением указанного целого.

x: Целое, для которого требуется вычислить шестнадцатеричное представление.

Может быть передан любой объект, реализующий метод __index__() , возвращающий целое.Получаемая строка имеет нижний регистр и префикс 0x.

Пример:

hex(10) # '0xa'
hex(-33)
# '-0x21'

Чтобы получить шестнадцатеричное представление для числа с плавающей запятой, используйте float.hex().

id(obj)

Возвращает идентификатор указанного объекта.

obj: Объект, идентификатор которого требуется получить.

Возвращает целое, гарантированно являющееся уникальным и постоянным для объекта на время его существования.

Таким образом, объекты, периоды существования которых не пересекаются, могут иметь одинаковый идентификатор.

Идентификатор является адресом объекта в памяти.

Следует иметь в виду, что некоторые объекты могут иметь один и тот же идентификатор, например: мелкие целые (с -5 по 256), True и False.

Пример:

a = 1
b = 1

id(a) == id(b)
# True

a = 257
b = 257

id(a) == id(b)
# False

input([prompt])

Считывает и возвращает строку входных данных.

prompt: Строка-приглашение, которая должна быть отправлена на стандартное устройство вывода (заключительный перевод каретки при этом удаляется).

Если загружен модуль readline, тогда функция воспользуется им для удобства ввода пользователя (например, для поддержки истории команд).

Функция считывает строку данных, полученную с устройства ввода и возвращает её без заключительного перевода каретки.

В случае считывания EOF (признак конца файла), поднимается исключение EOFError.

Пример:

my_str = input('Expression: ') # Expression: 2+2
my_str
# 2+2

my_str = input('Your string here: ')
# Your string here: my string
my_str
# my string

isinstance(obj, classinfo)

Возвращает флаг, указывающий на то, является ли указанный объект экземпляром указанного класса (классов)

obj: Объект, требующий проверки.

classinfo: Класс, либо кортеж с классами, либо рекурсивный кортеж кортежей. Другие типы последовательностей не поддерживаются. Если аргумент не является классом, либо кортежем с классами, возбуждается TypeError.

Возвращает True, если указанный объект является экземпляром указанного класса (классов), либо наследующегося от него класса.

Пример:

isinstance(1, int) # True
isinstance('some', str)
# True
isinstance(1.7, float)
# True

Заключение

Будет вторая часть, потому что автор заебался делать первую

Пост создан для тг-канала @coolcoders