Встроенные функции
abs(x)
all(iterable)
any(iterable)
ascii(object)
bin(x)
bool(x)
breakpoint()
bytearray(source)
bytes(source)
Хешируемость
Пример из пентестинга
chr(i)
compile(source, filename, mode)
Варианты использования
Особенности
complex(real, imag)
dict(kwargs)
dir(object)
divmod(a, b)
enumerate(iterable)
eval(expression)
filter(function, iterable)
float(x)
format(value, format_spec)
frozenset(iterable)
getattr(object, name)
globals()
hasattr(object, name)
hash(object)
hex(x)
input(prompt)
int(x)
isinstance(object, classinfo)
issubclass(class, classinfo)
iter(object)
len(s)
list(iterable)
locals()
map(function, iterable)
max(iterable)
next(iterator)
object()
oct(x)
open(file, mode)
ord(c)
pow(base, exp)
print(objects)
range(stop)
round(number)
set(iterable)
slice(start, stop)
sorted(iterable)
str(object)
sum(iterable)
tuple(iterable)
type(object)
vars(object)
zip(iterables)
208.43K
Category: programmingprogramming

Встроенные функции

1. Встроенные функции

2. abs(x)

• Возвращает абсолютное значение числа.
print(abs(-5)) # 5

3. all(iterable)

• Возвращает True, если все элементы итерируемого объекта
истинны (или если объект пуст).
print(all([True, 1, 'hello'])) # True

4. any(iterable)

• Возвращает True, если хотя бы один элемент итерируемого
объекта истинен.
print(any([False, 0, ''])) # False

5. ascii(object)

• Возвращает строку с печатным представлением объекта, заменяя не-ASCII символы на escapeпоследовательности.
print(ascii('привет')) # '\u043f\u0440\u0438\u0432\u0435\u0442’
Конкретные варианты использования и польза:
1. Отладка и логирование: когда нужно вывести строку с не-ASCII символами в читаемом виде
(экранированном) для отладки или логов, особенно в средах, где может быть проблема с кодировкой.
2. Сериализация данных: при преобразовании данных в строку для хранения или передачи в системе,
которая требует ASCII, например, при записи в файл, который должен быть в ASCII, или при отправке
данных по сети в системе, которая не поддерживает Unicode.
3. Безопасный вывод: когда необходимо вывести строку так, чтобы она была безопасна для
интерпретации в консоли или другом устройстве, которое может не поддерживать Unicode.
4. Сравнение строк: иногда нужно сравнить строки в экранированном виде, чтобы убедиться, что они
идентичны по содержанию, даже если оригинальные строки содержат разные не-ASCII символы.
5. Генерация кода: при автоматической генерации кода на Python, где нужно представить строки в ASCII,
чтобы избежать проблем с кодировкой исходного файла.

6. bin(x)

• Преобразует целое число в двоичную строку с префиксом 0b.
print(bin(5)) # '0b101’

7. bool(x)

• Преобразует значение в булево (True или False) используя
стандартную процедуру проверки истинности.
print(bool(0)) # False

8. breakpoint()

• Вызывает отладчик Python - встроенная функция в Python
(доступна с версии 3.7), которая предоставляет удобный способ
установки точек останова для отладки кода. Она заменяет
традиционный способ с использованием import pdb;
pdb.set_trace().
# breakpoint() # раскомментируйте,
чтобы запустить отладчик

9.

• c или cont # Продолжить выполнение до следующей точки
останова
• n или next # Выполнить следующую строку (не заходя в
функции)
• s или step # Выполнить следующую строку (заходя в функции)
• r или return # Выполнять до возврата из текущей функции
• q или quit # Выйти из отладчика

10.

• l или list # Показать код вокруг текущей позиции
• w или where # Показать стек вызовов
• u или up
# Подняться на уровень выше в стеке вызовов
• d или down # Опуститься на уровень ниже в стеке вызовов
• h или help # Показать справку по командам

11.

def calculate_stats(numbers):
total = sum(numbers)
count = len(numbers)
breakpoint() # Точка останова
average = total / count
return average
numbers = [1, 2, 3, 4, 5]
result = calculate_stats(numbers)

12. bytearray(source)

• Создает массив байт (изменяемую последовательность байт).
print(bytearray([65, 66, 67])) # bytearray(b'ABC’)

13. bytes(source)

• Создает неизменяемую последовательность байт.
print(bytes([65, 66, 67])) # b'ABC'

14.

# Создаем исходные данные
source_data = "Hello, World!"
print(f"Исходная строка: {source_data}")
# Преобразуем в bytes и bytearray
bytes_obj = bytes(source_data, 'utf-8')
bytearray_obj = bytearray(source_data, 'utf-8')
print(f"bytes объект: {bytes_obj}")
print(f"bytearray объект: {bytearray_obj}")

15.

# Попытка изменить первый элемент в bytes (ВЫЗОВЕТ ОШИБКУ)
try:
bytes_obj[0] = 65 # Попытка изменить 'H' (72) на 'A' (65)
except TypeError as e:
print(f"Ошибка с bytes: {e}")
# Успешное изменение первого элемента в bytearray
try:
bytearray_obj[0] = 65 # Меняем 'H' (72) на 'A' (65)
print(f"Измененный bytearray: {bytearray_obj}")
print(f"Текст после изменения: {bytearray_obj.decode('utf-8')}")
except Exception as e:
print(f"Ошибка с bytearray: {e}")

16. Хешируемость

bytes - можно использовать как ключ словаря
d = {b"key": "value"} # OK
# bytearray - нельзя использовать как ключ словаря
# d = {bytearray(b"key"): "value"} # TypeError

17. Пример из пентестинга

# Пример модификации сетевого пакета
def modify_packet(packet, new_value, position):
# Преобразуем в bytearray для возможности изменения
packet_ba = bytearray(packet)
# Заменяем часть пакета
packet_ba[position:position+len(new_value)] = new_value
# Возвращаем как bytes для отправки по сети
return bytes(packet_ba)
# Исходный HTTP-запрос
http_request = b"GET / HTTP/1.1\r\nHost: example.com\r\n\r\n"
# Модифицируем путь
modified_request = modify_packet(http_request, b"/admin", 4)
print(modified_request) # b"GET /admin HTTP/1.1\r\nHost: example.com\r\n\r\n"
# Попытка сделать то же самое с bytes потребовала бы:
# new_request = http_request[:4] + b"/admin" + http_request[9:]

18.

19. chr(i)

• Возвращает символ по его Unicode коду (числу).
print(chr(65)) # 'A'

20. compile(source, filename, mode)

• Компилирует исходный код в объект кода для выполнения.
code = compile('print("Hello")', 'test', 'exec'); exec(code)
compile() - это как "написание программы" (создание
исполняемого файла)
exec() - это как "запуск программы" (выполнение исполняемого
файла)

21. Варианты использования

• 1. Выполнение динамически генерируемого кода
def create_greeting_function(name):
source = f'def greet():\n print("Привет, {name}!")\ngreet()'
code = compile(source, 'dynamic_greet', 'exec')
return code
greeting_code = create_greeting_function(“Вася")
exec(greeting_code) # Выведет: Привет, Вася!

22.

• Безопасное выполнение кода с ограничениями
• Кэширование скомпилированного кода
# Компиляция один раз, выполнение много раз
template_code = compile('print(f"Добро пожаловать, {name}!")',
'template', 'exec')
for name in ["Иван", "Мария", "Петр"]:
exec(template_code, {'name': name})

23. Особенности

• Безопасность: exec() может выполнять любой код, что
представляет угрозу безопасности
Производительность: Компиляция кода занимает время, но
выполнение скомпилированного кода быстрее
Область видимости: По умолчанию exec() выполняется в
текущей области видимости

24. complex(real, imag)

• Создает комплексное число.
print(complex(3, 4)) # (3+4j)

25. dict(kwargs)

• Создает словарь.
print(dict(a=1, b=2)) # {'a': 1, 'b': 2}

26. dir(object)

Возвращает список имен атрибутов объекта.
print(dir([])) # список методов списка

27. divmod(a, b)

• Возвращает частное и остаток от деления a на b.
print(divmod(10, 3)) # (3, 1)

28. enumerate(iterable)

• Возвращает итератор с парами (индекс, элемент) для
итерируемого объекта.
for i, item in enumerate(['a', 'b']): print(i, item)

29. eval(expression)

• Выполняет строку с кодом Python и возвращает результат.
print(eval('2+2')) # 4

30.

31. filter(function, iterable)

• Фильтрует элементы итерируемого объекта с помощью функции.
print(list(filter(lambda x: x>0, [-1, 0, 1]))) # [1]

32. float(x)

• Преобразует число или строку в число с плавающей точкой.
print(float('3.14')) # 3.14

33. format(value, format_spec)

Форматирует значение по спецификации.
print(format(123, '05d')) # '00123'

34.


Примеры использования:
Целое число с разделителем тысяч:
format(123456789, ',') -> '123,456,789'
Вещественное число с двумя знаками после запятой:
format(3.14159, '.2f') -> '3.14'
Выравнивание и заполнение:
format(42, '0>5d') -> '00042'
Процент:
format(0.25, '.0%') -> '25%'
Шестнадцатеричное представление с префиксом:
format(255, '#x') -> '0xff'
Экспоненциальная запись:
format(1000000, '.2e') -> '1.00e+06'
Форматирование строки с выравниванием по центру и заполнением:
format('hello', '*^10') -> 'hello*'
Использование подчеркивания как разделителя:
format(1000000, '_d') -> '1_000_000'
Отображение знака для положительных и отрицательных чисел:
format(42, '+d') -> '+42'
format(-42, 'd') -> '-42'
Альтернативная форма для вещественных чисел:
format(123, '#.0f') -> '123.' (даже если дробная часть отсутствует, точка остается)

35. frozenset(iterable)

• Создает неизменяемое множество.
• fset = frozenset([1, 2, 3])

36. getattr(object, name)

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

37. globals()

• Возвращает словарь глобальных символов текущего модуля.
print(globals().keys())

38. hasattr(object, name)

• Проверяет, есть ли у объекта атрибут с именем name.
print(hasattr('hello', 'upper')) # True

39. hash(object)

• Возвращает хеш-значение объекта (если оно есть).
print(hash('hello')) # число

40. hex(x)

• Преобразует целое число в шестнадцатеричную строку с
префиксом 0x.
• print(hex(255)) # '0xff'

41. input(prompt)

• Читает строку из стандартного ввода.
name = input('Введите имя: ')

42. int(x)

• Преобразует число или строку в целое число.
• print(int('10')) # 10

43. isinstance(object, classinfo)

• Проверяет, является ли объект экземпляром класса или кортежа
print(isinstance(5, int)) # True

44. issubclass(class, classinfo)

• Проверяет, является ли класс подклассом другого класса.
print(issubclass(bool, int)) # True

45. iter(object)

• Возвращает итератор для объекта.
it = iter([1,2]); next(it) # 1

46. len(s)

• Возвращает длину (количество элементов) объекта.
print(len('abc')) # 3

47. list(iterable)

• Создает список.
print(list('abc')) # ['a', 'b', 'c']

48. locals()

• Возвращает словарь локальных переменных текущей области
видимости.
x=10; print(locals()['x']) # 10

49. map(function, iterable)

• Применяет функцию к каждому элементу итерируемого объекта.
print(list(map(str.upper, ['a', 'b']))) # ['A', 'B']

50. max(iterable)

• Возвращает наибольший элемент в итерируемом объекте.
print(max([3,1,4])) # 4
min(iterable) Возвращает наименьший элемент в итерируемом
объекте.

51. next(iterator)

• Возвращает следующий элемент из итератора.
it = iter([1,2]); print(next(it)) # 1

52. object()

• Создает новый базовый объект (корень иерархии типов).
obj = object()

53. oct(x)

• Преобразует целое число в восьмеричную строку с префиксом 0o.
print(oct(8)) # '0o10'

54. open(file, mode)

• Открывает файл и возвращает файловый объект.
with open('file.txt') as f: content = f.read()

55. ord(c)

• Возвращает Unicode код символа.
print(ord('A')) # 65

56. pow(base, exp)

• Возвращает base в степени exp.
print(pow(2, 3)) # 8

57. print(objects)

• Выводит объекты в текстовый поток.

58. range(stop)

• Возвращает неизменяемую последовательность чисел.
print(list(range(3))) # [0, 1, 2]

59. round(number)

• Округляет число до заданного количества знаков после запятой.
print(round(3.14159, 2)) # 3.14

60. set(iterable)

• Создает множество.
print(set([1,2,2,3])) # {1,2,3}

61. slice(start, stop)

• Создает объект среза для использования в индексации.
arr = [1,2,3,4]; print(arr[slice(1,3)]) # [2,3]

62. sorted(iterable)

• Возвращает новый отсортированный список из элементов
итерируемого объекта.
print(sorted([3,1,2])) # [1,2,3]

63. str(object)

• Возвращает строковое представление объекта.
• print(str(42)) # '42'

64. sum(iterable)

• Возвращает сумму элементов итерируемого объекта.
print(sum([1,2,3])) # 6

65. tuple(iterable)

• Создает кортеж.
print(tuple([1,2,3])) # (1,2,3)

66. type(object)

• Возвращает тип объекта.
print(type(42)) # <class 'int'>

67. vars(object)

• Возвращает словарь атрибутов объекта.
class Test: x=10; print(vars(Test)) # {'x': 10, ...}

68. zip(iterables)

• Возвращает итератор по кортежам, где i-й кортеж содержит i-е
элементы каждого из аргументов.
print(list(zip([1,2], ['a','b']))) # [(1, 'a'), (2, 'b')]
English     Русский Rules