Упаковка параметров с помощью urlencode
Довольно часто приходится работать с разнообразными API и совершать get-запросы с передачей множества параметров. Чаще всего составление запроса в коде выглядит примерно так:
Смотрится не слишком презентабельно, однако есть слегка более длинный, но значительно улучающий читаемость кода вариант – функция
#трюки #urllib
Довольно часто приходится работать с разнообразными API и совершать get-запросы с передачей множества параметров. Чаще всего составление запроса в коде выглядит примерно так:
url = 'https://example.com?item={}&size={}&color={}&amount={}'.format('t-shirt', 'M', 'white', 5)Смотрится не слишком презентабельно, однако есть слегка более длинный, но значительно улучающий читаемость кода вариант – функция
urlencode из модуля urllib.#трюки #urllib
❤3👎2
Быстрый deque
Для
deque предпочтительнее, чем обычный список, когда нужны более быстрые операции добавления и вытаскивания элементов с начала и конца контейнера.deque обеспечивает линейную сложность O(1) для операций добавления и выталкивания, у стандартного списка сложность по этим операциям O(n).Для
deque есть возможность использовать стандартные функции — sum, min, max и другие.👎3
Понимание различий между операторами сравнения == и is
Множество разработчиков сталкиваются с трудностями в отличии двух операторов сравнения:
Оператор
В
#python
Множество разработчиков сталкиваются с трудностями в отличии двух операторов сравнения:
== и is, что может привести к неожиданным ошибкам в коде.Оператор
== сравнивает значения двух объектов, чтобы определить их равенство. В отличие от него, оператор is проверяет, ссылаются ли две переменные на один и тот же объект в памяти, тем самым проверяя их идентичность.В
Python из соображений эффективности происходит кэширование небольших чисел и коротких строк, что может привести к путанице и неочевидным результатам при использовании этих операторов.#python
❤2👎1
Хэширование
Хэш — это целое число фиксированного размера, которое идентифицирует определенное значение. Каждое уникальное значение должно иметь свой собственный хэш.
Для хэширования значений есть встроенная функция
Но изменяемые объекты по типу списков и словарей нельзя хэшировать — интерпретатор выбросит соответствующую ошибку.
Здесь, кстати, есть две пасхалки. Хэш бесконечности равен перым цифрам числа Пи, а хэш Not a Number равен нулю.
А еще случаются коллизии: например, хэши чисел -1 и -2 одинаковы.
#hash
Хэш — это целое число фиксированного размера, которое идентифицирует определенное значение. Каждое уникальное значение должно иметь свой собственный хэш.
Для хэширования значений есть встроенная функция
hash(). Используется она в основном для сравнения значений разных объектов — сравнивать хэши легче и выгоднее.Но изменяемые объекты по типу списков и словарей нельзя хэшировать — интерпретатор выбросит соответствующую ошибку.
Здесь, кстати, есть две пасхалки. Хэш бесконечности равен перым цифрам числа Пи, а хэш Not a Number равен нулю.
А еще случаются коллизии: например, хэши чисел -1 и -2 одинаковы.
#hash
❤1👍1👎1
Получение срезов итераторов
Если вы попытаетесь получить срез итератора, то столкнётесь с ошибкой TypeError, сообщающей о том, что на объект-генератор нельзя оформить подписку. Однако эта проблема поддаётся решению (см картинку).
Воспользовавшись методом itertools.islice, можно создать объект islice, который представляет собой итератор, выдающий нужные элементы. Однако здесь важно отметить то, что эта конструкция использует все элементы генератора вплоть до начала среза и все элементы в объекте islice.
#python
Если вы попытаетесь получить срез итератора, то столкнётесь с ошибкой TypeError, сообщающей о том, что на объект-генератор нельзя оформить подписку. Однако эта проблема поддаётся решению (см картинку).
Воспользовавшись методом itertools.islice, можно создать объект islice, который представляет собой итератор, выдающий нужные элементы. Однако здесь важно отметить то, что эта конструкция использует все элементы генератора вплоть до начала среза и все элементы в объекте islice.
#python
❤3👎2
Возврат нескольких значений из функции
Знаете ли вы, что можно осуществлять возврат нескольких значений из функции? Вот как это сделать. Ознакомьтесь с приведенным выше примером кода.
#python
Знаете ли вы, что можно осуществлять возврат нескольких значений из функции? Вот как это сделать. Ознакомьтесь с приведенным выше примером кода.
#python
👎5❤2
FFmpeg: Лучшее решение для обработки мультимедийных файлов
Для начала использования
Исходный код и документация доступны тут
FFmpeg - это бесплатная и открытая библиотека и набор инструментов для обработки мультимедийных файлов. Она предоставляет мощные возможности для работы с видео, аудио и другими мультимедийными данными. FFmpeg является одним из самых популярных и универсальных инструментов для обработки мультимедиа в мире.Для начала использования
FFmpeg, вы можете установить библиотеку командой pip install ffmpeg-python. После этого, вы можете создавать собственные скрипты для обработки видео и аудио файлов, определяя нужные операции и параметры. ffmpeg-python обладает мощными возможностями для конвертации, обрезки, склеивания и многого другого.Исходный код и документация доступны тут
👍3❤1👎1
Функция reload()
Функция
Функция
#для_начинающих
Функция
reload() в Python перезагружает ранее импортированный модуль. Это означает, что код модуля выполняется заново, и любые изменения в модуле становятся доступными.Функция
reload() принимает в качестве аргумента объект модуля. Этот объект должен быть ранее импортированным модулем.#для_начинающих
👍1👎1
Pyrogram: Работа с Telegram API на Python
Для начала работы с
Одним из ключевых преимуществ
Документация доступна тут
Pyrogram - это выдающаяся библиотека на Python, предназначенная для удобной и эффективной работы с Telegram API. Она предоставляет разработчикам возможность создавать ботов, приложения и скрипты для Telegram Bot API, а также взаимодействовать с Telegram User API для отправки сообщений, управления чатами и многих других задач.Для начала работы с
Pyrogram, вы можете установить библиотеку с помощью pip. Затем вы можете легко настроить своих ботов и приложения, задавая им различные функциональности. Pyrogram обеспечивает удобное взаимодействие с API, что делает разработку ботов и приложений более простой и эффективной.Одним из ключевых преимуществ
Pyrogram является его высокая производительность и поддержка асинхронных операций. Это позволяет обрабатывать большое количество запросов и взаимодействий с Telegram в реальном времени.Pyrogram также предоставляет обширные возможности для работы с различными аспектами Telegram, включая отправку текстовых сообщений, медиа-файлов, администрирование чатов и многое другое. Благодаря этой библиотеке, разработчики могут создавать мощные и гибкие Telegram-боты и юзерботы, которые отвечают на разнообразные потребности пользователей.Документация доступна тут
❤6👎2
Что такое глубокая копия?
Глубокая копия используется для хранения значений, которые уже скопированы. Глубокая копия не копирует ссылочные указатели на объекты.
Она создает ссылку на объект, и новый объект, на который указывает другой, сохраняется. В отличие от неглубокой копии, изменения, внесенные в исходную копию, не повлияют ни на одну другую копию, использующую объект. Это значит, что они не привязаны.
Глубокая копия используется для хранения значений, которые уже скопированы. Глубокая копия не копирует ссылочные указатели на объекты.
Она создает ссылку на объект, и новый объект, на который указывает другой, сохраняется. В отличие от неглубокой копии, изменения, внесенные в исходную копию, не повлияют ни на одну другую копию, использующую объект. Это значит, что они не привязаны.
👎2👍1
SCons
SCons — это современная система сборки программного обеспечения, основанная на Python. Она предназначена для автоматизации процесса компиляции и сборки проектов, делая его более эффективным и надежным.
#для_продвинутых
SCons — это современная система сборки программного обеспечения, основанная на Python. Она предназначена для автоматизации процесса компиляции и сборки проектов, делая его более эффективным и надежным.
#для_продвинутых
Typeshed
Typeshed — это коллекция заглушек (stubs) для стандартной библиотеки Python, библиотек Python builtins, а также сторонних пакетов. Заглушки – это файлы Python, содержащие определения типов для модулей и пакетов.
#для_продвинутых
Typeshed — это коллекция заглушек (stubs) для стандартной библиотеки Python, библиотек Python builtins, а также сторонних пакетов. Заглушки – это файлы Python, содержащие определения типов для модулей и пакетов.
#для_продвинутых