Python tricks | Хитрости Питона
5.67K subscribers
2.21K photos
26 videos
1 file
2.52K links
Здесь вы найдете лучшие практики и приёмы, которые используют опытные программисты.

Сотрудничество: @SIeep_Token

Мы на платформе: https://telegram.me/python_tricks

Ссылка на канал: https://t.me/+QayZf6ccsQllZTYy
Download Telegram
Что выведет код?

print(50 and 100)
Anonymous Quiz
33%
50 100
7%
50
15%
100
45%
ни один из перечисленных
Функция escape()

Функция escape() становится очень действенным, поскольку позволяет нам избежать заданной последовательности символов, которую мы определили в функции.
Функция escape() очень удобна для поиска файлов, в именах которых есть определенные символы (как мы определим в функции). Она будет соответствовать последовательности, сопоставляя произвольную буквальную строку в именах файлов с этим специальным символом в них.

Escape() следует использовать с функцией glob() или iglob(), чтобы в результате мы могли распечатать список имен файлов в выходных данных.
Функция fork()

Функция fork() модуля os создает клон текущего процесса как дочерний процесс. Возвращает 0 в дочернем процессе и идентификатор дочернего процесса в родительском элементе. Если возникает ошибка, то возникает исключение OSError.

После разветвления, два процесса выполняют один и тот же код. Чтобы программа узнала, в каком она находится, она должна проверить возвращаемое значение os.fork(). Если значение равно 0, текущий процесс является дочерним. Если это не 0, программа выполняется в родительском процессе, а возвращаемое значение является идентификатором процесса дочернего процесса.
Что выведет код сверху?
Anonymous Quiz
7%
Python
7%
-1
43%
Error
30%
nothyP
13%
"
Модуль getpass()

Как и NumPy и Matplotlib, getpass также является модулем python. Модуль getpass запрашивает у пользователя пароль без эха. Это означает, что вы не показываете, что набирает пользователь.

Выше мы можем увидеть фундаментальный пример getpass. Основная задача нашего кода состояла в том, чтобы запрашивать входные данные у пользователя. Для этого мы сначала импортировали модуль getpass. После чего мы использовали команду Try and except. Они используются для обработки исключений. После попытки код оператора выполняется как обычная программа. Команда, следующая за оператором except, отвечает на исключение оператора try. Это был элементарный пример, который позволил нам рассмотреть нечто более сложное.
Что выведет код сверху?
Anonymous Quiz
38%
Error
13%
9
41%
[9, 1, 3]
8%
[3, 6]
Функция vars()

Функция vars() вернет атрибут dict - словарь пространства имен для модуля, класса, экземпляра или любого другого объекта с атрибутом dict.

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

Без аргумента vars() действует как встроенная функция locals(). Обратите внимание, что словарь переменных локальной области видимости полезен только для чтения, поскольку обновление словаря локальной области видимости игнорируются интерпретатором.
Модуль diffflib

Модуль diffflib, как следует из названия, может использоваться для поиска различий или «различий» между содержимым файлов или других хешируемых объектов Python. Его также можно использовать для определения соотношения, показывающего степень сходства между двумя объектами.

Вы можете сравнить два хешируемых типа или последовательности, используя класс «Differ», доступный в модуле diffflib.

На примере выше, оператор импортирует класс Differ из модуля difflib. Затем две переменные строкового типа определяются с некоторыми значениями. Затем создается новый экземпляр класса Differ как «d». Далее с помощью этого экземпляра вызывается метод «compare», чтобы найти разницу между строками «line1» и «line2». Эти строки предоставляются в качестве аргументов для метода сравнения.
Что выведет код?
Anonymous Quiz
63%
{1, 2, 3, 4}
6%
True
20%
None
12%
Error
Геттеры и сеттеры

Названия методов, которые записывают значение в поле и берут значение поля, начинаются с set и get. Это так называемые сеттеры и геттеры. Это общепринятые термины, которые используются для однозначного описания конкретных процессов. Если записываем, то используем сеттер (set), если берём, то используем геттер (get).
Что выведет код?
Anonymous Quiz
67%
True
19%
False
14%
Error
Функция re.split()

Функция split работает аналогично методу split в строках, но в функции re.split можно использовать регулярные выражения, а значит, разделять строку на части по более сложным условиям.
Сколько правил PEP8 нарушено при таком импорте библиотек?
Anonymous Quiz
25%
1
33%
2
32%
3
11%
4
Progressbar в python

Индикаторы прогресса (progress bar) — визуальное отображение процесса работы. Они избавляют нас от необходимости беспокоиться о том, не завис ли скрипт, дают интуитивное представление о скорости его выполнения и подсказывают, сколько времени осталось до завершения.