Pro Python • IT
4.16K subscribers
1.46K photos
148 videos
45 files
1.42K links
Pro Python — авторский канал с полезными советами, материалами и новостями по Python-программированию.

Сотрудничество (реклама): @NotPriceMedia

Канал на бирже : https://telega.in/c/PythonTechCode
Download Telegram
Находим минимальный элемент

Функция min() используется для нахождения минимального значения из переданных аргументов или элементов итерируемого объекта.

Если два элемента равны, тогда min() вернет первый из них.

Синтаксис:

min(iterable, *, default, key=None)

где:
iterable, * - это итерируемый объект или переданные аргументы.

key (необязательно) - используется для определения ключа сортировки.

default (необязательно) - это значение будет возвращено, если итерабельный объект пуст.


Если нужно найти несколько наименьших элементов в большом наборе данных, то предпочтительнее использовать heapq.nsmallest для повышения производительности.

Python Tech Code - подписаться
👍4❤3🔥2
Создаем свой собственный итератор

Чтобы объект стал итерируемым, необходимо реализовать метод __iter__().
Метод __iter__() должен возвращать объект, который имеет метод __next__(), либо сам являтся итерируемым (итератором).

В этом примере при каждом вызове __next__() возвращается следующий элемент из data, пока не будет достигнут конец списка, после чего вызывается исключение StopIteration, что говорит о завершении итерации.


Таким образом, реализуя методы __iter__() и __next__(), можем сделать свой объект итерируемым и использовать его в циклах for и других местах, где требуется работа с итерируемыми объектами.

Python Tech Code - подписаться
❤7👍3🔥2👏1
Повышаем скорость работы Python

Декоратор @jit в библиотеке Numba используется для компиляции функции Python в машинный код с целью ускорения её выполнения, одновременно сохраняя гибкость работы с разнообразными типами данных благодаря динамичности компиляции.

Этот результат достигается за счёт использования JIT-компиляции (just-in-time compilation), что означает, что код компилируется только тогда, когда он действительно требуется в процессе выполнения программы, а не заранее.

Однако важно помнить, что результаты использования Numba могут варьироваться в зависимости от конкретной задачи и данных. В некоторых случаях, особенно при работе с небольшими объемами данных, накладные расходы на компиляцию могут превысить выигрыш в скорости. Поэтому рекомендуется провести тщательное тестирование перед внедрением Numba в проект.


Для установки Numba можно воспользоваться командой:
pip install numba


Python Tech Code - подписаться
👍9✍2🔥2👨‍💻1
Вычисление среднего значения

Функция mean() из модуля statistics в Python используется для вычисления среднего значения (средней арифметической) из последовательности чисел и принимает в качестве аргумента итерируемый объект.

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

Python Tech Code - подписаться
👍9✍3💯1
Байтовые объекты

Байтовые объекты
- это объекты, которые хранят и обрабатывают данные в виде байтов, а не в виде символов.

Байтовые объекты в Python представлены типом данных bytes и bytearray.

Основное различие между ними заключается в том, что bytes является неизменяемым типом данных, в то время как bytearray - изменяемым.

Синтаксис для байтовых литералов похож на строковые литералы, но с добавлением префикса "b", который указывает интерпретатору Python на то, что строка должна быть представлена в виде байтового объекта.

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


Python Tech Code - подписаться
👍7🔥4❤2
Что выведет этот код?
Anonymous Quiz
2%
None
11%
1
5%
4
10%
7
23%
64
19%
Ошибку
30%
Узнать ответ
👍11🫡6❤2
Вывод цветного текста в терминал

Существуют ситуации, когда при работе с терминалом необходимо выделить определенную информацию цветом.
Один из способов — использовать ANSI Escape Codes.

В этом примере text1 выводится в красном цвете, а text2 - в желтом цвете на синем фоне.

Символ \033 обозначает начало управляющего кода ANSI, [33;104m — это параметры, где 33 — желтый цвет текста, 104 — синий цвет фона, а [0m возвращает цвет текста в стандартный черный.


Важно отметить, что поддержка ANSI Escape Codes может варьироваться в зависимости от используемой операционной системы и терминала.

Python Tech Code - подписаться
👍10❤3✍2🔥1
Динамический импорт модулей

Для динамического импорта модулей в Python можно использовать функцию import_module() из стандартной библиотеки importlib.

В данном примере код динамически импортирует модуль random и использует функцию sample() из этого модуля для выбора нескольких случайных элементов из списка.

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


Python Tech Code - подписаться
🔥8👍6❤2
Фабричная функция

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

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

В этом примере select_prog является фабричной функцией, которая создает новый объект Prog.
Она может содержать логику выбора и создания конкретного типа объекта на основе переданных параметров или условий.


Python Tech Code - подписаться
👍6✍3🔥2
👍15🔥13🤔6🎉2🫡2😎2🏆1
Преобразование строки в байты

Метод encode() в Python преобразует строки в байтовые объекты, используя определенную кодировку (по умолчанию UTF-8).

Если в строке есть символы, недопустимые в выбранной кодировке, возникает исключение UnicodeEncodeError.
При пустой строке метод вернет пустую последовательность байтов.

Метод encode() создает новый объект байтов, представляющий исходную строку в выбранной кодировке, не изменяя исходную строку.

В данном примере print() выведет:
b'\xd0\xad\xd1\x82\xd0\xbe Python'


Python Tech Code - подписаться
👍4❤3🔥2
Удаление папки со всем ее содержимым

shutil.rmtree()
- это функция из стандартной библиотеки Python shutil, которая используется для удаления директории и всех файлов и поддиректорий, находящихся внутри нее.

Эта функция очень удобна, когда необходимо удалить целую директорию со всем ее содержимым.


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

Python Tech Code - подписаться
🔥7👍6✍2❤2
Виды кодировок символов

С
уществует множество различных кодировок текста, каждая из которых определяет способ преобразования символов в байтовое представление.

Некоторые из наиболее распространенных кодировок:

1. ASCII (American Standard Code for Information Interchange) - кодировка для представления основных символов латинского алфавита, цифр и специальных символов.

2. Unicode - это универсальная кодировка символов (символы из большинства письменных языков мира).

3. ISO 8859 - это семейство кодировок символов, каждая из которых предназначена для представления символов определенного языка.

4. Windows Code Page - это семейство кодировок символов для ОС Windows.

5. KOI8 - это кодировка символов, разработанная в СССР для представления символов кириллицы.

6. UTF-8 (UTF-16) - это переменной длины кодировка Unicode.

7. EUC-JP - это кодировка, для японского текста.


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

Python Tech Code - подписаться
👍6🔥3❤2
🤔14👍10✍4🔥2👨‍💻2
Создание неизменяемых структур данных

Так, namedtuple из модуля collections в Python позволяет создавать пользовательские типы данных, похожие на кортежи, но с именованными полями.

Синтаксис:

namedtuple('Имя', ['Поле1', 'Поле2', ...])

где:
'Имя' - это имя для создаваемого типа данных.

['Поле1', 'Поле2', ...] - это список имен полей, которые будет иметь созданный тип данных.


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

Python Tech Code - подписаться
🔥9👍2❤1