Константы пакета string
Встроенный модуль
Сейчас поговорим про константы этого модуля. Из интересного стоит выделить
Применение подобных констант может быть не очевидно с первого взгляда. Но подобные значения часто используются, например, в работе с алфавитом или в условном генераторе паролей.
К тому же часто бывает, что разработчики делают костыли и создают свои собственные константы в коде вместо того, чтобы импортировать уже готовые из модуля
#строки #string
Встроенный модуль
string предоставляет расширенный функционал для работы со строками. Про форматируемые шаблоны из этого пакета мы рассказывали в прошлом посте. Сейчас поговорим про константы этого модуля. Из интересного стоит выделить
ascii_letters, punctuation, digits и whitespace — символы ascii, знаки пунктуации, цифры и пробельные символы. Применение подобных констант может быть не очевидно с первого взгляда. Но подобные значения часто используются, например, в работе с алфавитом или в условном генераторе паролей.
К тому же часто бывает, что разработчики делают костыли и создают свои собственные константы в коде вместо того, чтобы импортировать уже готовые из модуля
string. #строки #string
❤1👎1
Работаем с zip архивами
Для упрощения работы с zip файлами можно использовать встроенный модуль
Просмотреть содержимое архива можно с помощью функции
Также этот модуль позволяет создавать свои zip архивы, но мы решили не усложнять пример, поэтому просто прикладываем ссылку на документацию.
#zipfile
Для упрощения работы с zip файлами можно использовать встроенный модуль
zipfile. Если кто не помнит, то zip файл – это архив, содержащий сжатые файлы. Просмотреть содержимое архива можно с помощью функции
printdir, а извлечь все файлы можно вызвав extractfile. Также этот модуль позволяет создавать свои zip архивы, но мы решили не усложнять пример, поэтому просто прикладываем ссылку на документацию.
#zipfile
👎1
Преобразование аудиофайлов с помощью Python
В
Для начала работы с файлом, используем метод
Когда файл загружен, для его конвертации и сохранения в желаемом формате применяем метод
#python #pydub
В
Python существует множество способов для выполнения конвертации аудиофайлов из одного формата в другой. Одним из наиболее удобных инструментов для этого является модуль pydub. Этот модуль служит оболочкой для ffmpeg и предоставляет возможности по загрузке, редактированию и сохранению аудиофайлов в различных форматах, поддерживаемых ffmpeg.Для начала работы с файлом, используем метод
from_ с указанием необходимого формата из класса AudioSegment, или же обратимся к более универсальному методу from_file, предоставляя путь к файлу и его формат.Когда файл загружен, для его конвертации и сохранения в желаемом формате применяем метод
export объекта класса AudioSegment, созданного на предыдущем шаге.#python #pydub
👎3
One Day Offer для Python-разработчиков!
15 августа открываем двери в команду Agent Execution Framework
Команда создаёт платформу для GenAI-агентов в банке — чтобы ИИ надёжно работал в реальных финпроцессах: безопасно, под высокой нагрузкой и с пользой.
Чем предстоит заниматься:
• развивать backend на Python
• подключать LLM, инструменты, базы знаний и RAG
• строить пайплайны оценки качества агентов
• участвовать в архитектуре и ревью кода
Встречаемся 15 августа онлайн.
Регистрируйся по ссылке
15 августа открываем двери в команду Agent Execution Framework
Команда создаёт платформу для GenAI-агентов в банке — чтобы ИИ надёжно работал в реальных финпроцессах: безопасно, под высокой нагрузкой и с пользой.
Чем предстоит заниматься:
• развивать backend на Python
• подключать LLM, инструменты, базы знаний и RAG
• строить пайплайны оценки качества агентов
• участвовать в архитектуре и ревью кода
Встречаемся 15 августа онлайн.
Регистрируйся по ссылке
❤2👍1👎1🔥1
Загрузка файлов асинхронно
Если у нас есть список
Однако, для задач, включающих загрузку большого количества маленьких файлов, параллелизация может заметно ускорить процесс.
Для параллелизации мы можем использовать
С помощью метода
Важно понимать, что так как загрузка файлов является IO-операцией, данный метод не ускоряет выполнение кода в прямом смысле, а скорее позволяет начать загрузку следующего файла, не ожидая завершения предыдущего.
#python #threading
Если у нас есть список
URL картинок для загрузки, использование простого цикла for позволит нам загрузить их последовательно, по одной за раз.Однако, для задач, включающих загрузку большого количества маленьких файлов, параллелизация может заметно ускорить процесс.
Для параллелизации мы можем использовать
ThreadPoolExecutor из модуля concurrent.futures. Этот инструмент позволяет выполнить функцию загрузки в нескольких параллельных потоках, где в конструкторе необходимо указать максимальное количество потоков для одновременного выполнения.С помощью метода
.map(download, urls) можно развернуть функцию загрузки на каждый URL из списка, обеспечивая их параллельную обработку.Важно понимать, что так как загрузка файлов является IO-операцией, данный метод не ускоряет выполнение кода в прямом смысле, а скорее позволяет начать загрузку следующего файла, не ожидая завершения предыдущего.
#python #threading
👎4👍1
Вычисление размера объектов
Для вычисления размера объекта мы можем использовать функцию
И хотя все
Аргумент
Функция
#getsizeof
Для вычисления размера объекта мы можем использовать функцию
getsizeof(object[, default]) из модуля sys. Так как в python все по сути является объектами, то и вычислить размер в памяти мы можем у любого такого объекта.И хотя все
built-in (встроенные) объекты и вернут правильный размер, в общем случае это не должно быть верно для каких-либо пользовательских объектов.Аргумент
default позволяет определить значение, которое будет возвращено, если тип объекта не предоставляет средства для извлечения размера и вызовет TypeError .Функция
getsizeof вызывает метод __sizeof__ объекта и добавляет дополнительные служебные данные сборщика мусора.#getsizeof
👎2👍1🔥1
Именованные кортежи
Кортежи
Нет возможности дать имена отдельным элементам, сохранённым в кортеже. Это может повлиять на читаемость кода. И в таком случае используют именованные кортежи
Каждый объект в именованном кортеже может быть доступен через уникальный, удобный для чтения человеком, идентификатор. При этом вся функциональность от обычных кортежей сохраняется.
#namedtuple
Кортежи
tuple, по своей сути, являются неизменяемыми списками. Структура данных удобная, но мы можем получать данные, используя только числовые индексы. Нет возможности дать имена отдельным элементам, сохранённым в кортеже. Это может повлиять на читаемость кода. И в таком случае используют именованные кортежи
namedtuple из collections. Каждый объект в именованном кортеже может быть доступен через уникальный, удобный для чтения человеком, идентификатор. При этом вся функциональность от обычных кортежей сохраняется.
#namedtuple
👍2👎2
Проверяем скорость интернета
Каждый хоть раз проверял скорость своего интернета на Speedtest. А у них, оказывается, есть не только сайт и приложения, но и пакет на Python для этого дела.
У объекта класса
Методы отдают результат в байтах, поэтому для наглядности в примере я перевел все данные в мегабайты при выводе.
#speedtest
Каждый хоть раз проверял скорость своего интернета на Speedtest. А у них, оказывается, есть не только сайт и приложения, но и пакет на Python для этого дела.
У объекта класса
Speedtest методы download() и upload() выдают соответственно скорость скачивания и загрузки данных.Методы отдают результат в байтах, поэтому для наглядности в примере я перевел все данные в мегабайты при выводе.
#speedtest
❤3👎1
Преобразования текста в аудио с помощью Python
Для преобразования текста в аудио на Python можно использовать библиотеку gTTS (Google Text-to-Speech).
В данном примере мы используем текст "Привет!» на русском языке, создаем объект gTTS и сохраняем аудиофайл "hello.mp3". Затем мы воспроизводим аудиофайл с помощью утилиты mpg321.
Для преобразования текста в аудио на Python можно использовать библиотеку gTTS (Google Text-to-Speech).
В данном примере мы используем текст "Привет!» на русском языке, создаем объект gTTS и сохраняем аудиофайл "hello.mp3". Затем мы воспроизводим аудиофайл с помощью утилиты mpg321.
❤6👍1👎1😱1
Точка входа
В некоторых языках программирования есть функции
Как вариант, многие пишут основную логику программы в обычную функцию
Переменная
Таким образом, программа корректно заработает, только если запустить ее напрямую. Если импортировать ее как модуль в другой скрипт, то условие не сработает.
#main
В некоторых языках программирования есть функции
main(), с которых начинается выполнение программы. Но в Python весь код исполняется построчно.Как вариант, многие пишут основную логику программы в обычную функцию
main(), а вызывают ее только в условии if __name__ == '__main__'. Здесь стоит объяснить отдельно про то, что такое __name__.Переменная
__name__ — это специальная переменная, которая будет равна '__main__', только если файл запускается как основная программа. А при импорте в качестве модуля выставляется равной имени модуля.Таким образом, программа корректно заработает, только если запустить ее напрямую. Если импортировать ее как модуль в другой скрипт, то условие не сработает.
#main
❤3👎1😱1
Сортировка пузырьком
Для сортировки списков в Python уже есть встроенные функция
Суть алгоритма в том, что совершается несколько проходов по массиву. При проходе последовательно сравниваются пары элементов в массиве и в случае несоответствия выбранному порядку меняются местами. Если пары элементов находятся в верном порядке, то ничего не происходит.
В результате первого прохода максимальный элемент окажется в конце, то есть всплывет словно пузырек. Затем все повторяется до того момента пока весь массив не будет отсортирован. Последний проход будет по отсортированному массиву.
#списки #сортировка
Для сортировки списков в Python уже есть встроенные функция
sorted() и метод .sorted(), но достаточно важно самому знать хотя бы несколько реализаций.Суть алгоритма в том, что совершается несколько проходов по массиву. При проходе последовательно сравниваются пары элементов в массиве и в случае несоответствия выбранному порядку меняются местами. Если пары элементов находятся в верном порядке, то ничего не происходит.
В результате первого прохода максимальный элемент окажется в конце, то есть всплывет словно пузырек. Затем все повторяется до того момента пока весь массив не будет отсортирован. Последний проход будет по отсортированному массиву.
#списки #сортировка
❤2👎1
Познакомьтесь с IceCream: Улучшенным выводом в Python
Hедавно мы наткнулись на потрясающий инструмент для отладки и разработки в
Что такое
Преимущества
1. Читабельность и простота в использовании:
2. Цветовая кодировка:
Настройка
Это добавит контекст, такой как имя файла и номер строки, в вывод:
#Python #logging #icecream
Hедавно мы наткнулись на потрясающий инструмент для отладки и разработки в
Python, и хотим поделиться им с вами! Представляем вам icecream - библиотеку, которая упрощает отладку, улучшая вывод ваших данных.Что такое
icecream?icecream - это легковесная библиотека для Python, которая предоставляет простые, но мощные инструменты для отслеживания и вывода значений переменных и данных в процессе выполнения кода. Этот инструмент полезен при отладке, тестировании и разработке, помогая вам лучше понять, что происходит в вашей программе.Преимущества
icecream перед стандартным print:1. Читабельность и простота в использовании:
icecream автоматически выводит имя переменной и ее значение, что делает вывод более понятным и читабельным.2. Цветовая кодировка:
icecream поддерживает цветовую кодировку вывода, что делает его более наглядным и удобным для анализа.Настройка
icecream:icecream позволяет настраивать вывод, добавлять дополнительную информацию, и даже сохранять логи в файл. Вы можете настроить icecream в соответствии с вашими потребностями, делая вывод более информативным и удобным.from icecream import ic, install
install(autodetect=True, includeContext=True)
number = 42
ic(number)
text = "Привет, мир!"
ic(text)
Это добавит контекст, такой как имя файла и номер строки, в вывод:
ic| <ipython-input-1-5a0d5d83d2d3>:1 in <module> - number: 42
ic| <ipython-input-1-5a0d5d83d2d3>:4 in <module> - text: 'Привет, мир!'#Python #logging #icecream
👎2