Стандартные функции
Стандартная библиотека Python богата различными функциями, для работы с данными, сетевыми протоколами, операционной системой, файлами, XML, регулярными выражениями и прочим. Собственно, это одна из причин по которой Python так популярен. Зачастую, не надо писать какой-то алгоритм с нуля, можно взять готовую функцию из стандартной библиотеки или из большого количества сторонних модулей. Но это десятки встроенных функций и классов, сотни инструментов, входящих в стандартную библиотеку Python, и тысячи сторонних библиотек на PyPI. Держать всё в голове начинающему программисту нереально. Сейчас мы быстро перечислим основные функции, которыми мы будем пользоваться в нашем курсе.
Начнем с уже известных нам print(), len(), str(), int(), float(), надеюсь вы их помните и повторять мы их не будем.
list
Эта функция может очень облегчить задачу, если вы хотите составить список из итераций цикла.
>>> numbers = [2, 1, 3, 5, 8]
>>> squares = (n**2 for n in numbers)
>>> squares
at 0x7fd52dbd5930>
>>> list_of_squares = list(squares)
>>> list_of_squares
[4, 1, 9, 25, 64]
При работе со списком метод copy
позволяет создать его копию.
>>> copy_of_squares = list_of_squares.copy()
Если вы не знаете, с какими элементами работаете, функция list
является более общим способом перебора элементов и их копирования.
>>> copy_of_squares = list(list_of_squares)
tuple
Эта функция во многом похожа на функцию list
, за исключением того, что вместо списков она создает кортежи.
>>> numbers = [2, 1, 3, 4, 7]
>>> tuple(numbers)
(2, 1, 3, 4, 7)
Если вы пытаетесь создать хешируемую коллекцию (например, ключ словаря), стоит отдать предпочтению кортежу вместо списка.
dict
Эта функция создаёт новый словарь.
Подобно спискам и кортежам, dict
эквивалентна проходу по массиву пар «ключ-значение» и созданию из них словаря.
Дан список кортежей, по два элемента в каждом.
>>> color_counts = [('red', 2), ('green', 1), ('blue', 3), ('purple', 5)]
Выведем его на экран с помощью цикла.
>>> colors = {}
>>> for color, n in color_counts:
... colors[color] = n
...
>>> colors
{'red': 2, 'green': 1, 'blue' 3, 'purple': 5}
То же самое, но с использованием dict
.
>>> colors = dict(color_counts)
>>> colors
{'red': 2, 'green': 1, 'blue' 3, 'purple': 5}
range
Эта функция создаёт объект range
, который представляет собой диапазон чисел.
>>> range(10_000)
range(0, 10000)
>>> range(-1_000_000_000, 1_000_000_000)
range(-1000000000, 1000000000)
Результирующий диапазон чисел включает начальный номер, но исключает конечный (range(0, 10)
не включает 10).
Данная функция полезна при переборе чисел.
>>> for n in range(0, 50, 10):
... print(n)
...
0
10
20
30
40
Обычный вариант использования — выполнить операцию n
раз.
first_five = [get_things() for _ in range(5)]
Функция range
в Python возвращает список.
bool
Эта функция проверяет достоверность (истинность) объектов Python. Относительно чисел будет выполняться проверка на неравенство нулю.
>>> bool(5)
True
>>> bool(-1)
True
>>> bool(0)
False
Применяя bool
к коллекциям, будет проверяться их длина (больше 0 или нет).
>>> bool('hello')
True
>>> bool('')
False
>>> bool(['a'])
True
>>> bool([])
False
>>> bool({})
False
>>> bool({1: 1, 2: 4, 3: 9})
True
>>> bool(range(5))
True
>>> bool(range(0))
False
>>> bool(None)
False
Проверка истинности очень важна в Python. Вместо того, чтобы задавать вопросы о длине контейнера, многие новички задают проверку истинности.
# Вместо этого
if len(numbers) == 0:
print("The numbers list is empty")
# многие делают так
if not numbers:
print("The numbers list is empty")
Данная функция используется редко. Но, если нужно привести значение к логическому типу для проверки его истинности, bool
вам необходима.
sum
Эта функция берёт набор чисел и возвращает их сумму.
>>> sum([2, 1, 3, 4, 7])
17
В Python есть много вспомогательных функций, которые выполняют циклы за вас (отчасти потому, что они хорошо сочетаются с генератор-выражениями).
>>> numbers = [2, 1, 3, 4, 7, 11, 18]
>>> sum(n**2 for n in numbers)
524
min и max
Эти функции выдают минимальное и максимальное число из набора соответственно.
>>> numbers = [2, 1, 3, 4, 7, 11, 18]
>>> min(numbers)
1
>>> max(numbers)
18
Данные методы сравнивают элементы, используя оператор <
. Поэтому, все передаваемые в них значения должны быть упорядочены и сопоставимы друг с другом.
type
Эта функция возвращает тип объекта, который вы ей передаете.
Тип экземпляра класса есть сам класс.
>>> x = [1, 2, 3]
>>> type(x)
<class 'list'>
Это основные, но далеко не все функции стандартной библиотеки Python, читайте примеры кода и вы встретитесь с еще большим количеством функций.