codecs.iterdecode
#theory // Just Python
codecs.iterdecode
поэлементно декодирует поток байтов в текст, используя заданную кодировку. Это полезно для обработки больших файлов или потоков в ограниченной памяти, без загрузки всего содержимого#theory // Just Python
Как быстро перевернуть строку?
Иногда нужно перевернуть строку, например, при анализе данных или для создания простых алгоритмов. Новички могут использовать циклы, но в Python есть удобный способ — срезы.
Этот приём позволяет перевернуть строку за одну строку: text[::-1] разворачивает строку с конца к началу.
#theory // Just Python
Иногда нужно перевернуть строку, например, при анализе данных или для создания простых алгоритмов. Новички могут использовать циклы, но в Python есть удобный способ — срезы.
Этот приём позволяет перевернуть строку за одну строку: text[::-1] разворачивает строку с конца к началу.
#theory // Just Python
Получаем имя текущей функции
Иногда при отладке или логировании нужно узнать, в какой функции мы находимся. Новички могут прописывать имя функции вручную, но Python позволяет получить его автоматически с помощью inspect.
Модуль inspect предоставляет функцию
Итог:
С помощью inspect можно автоматически получать имя текущей функции, что упрощает логирование и повышает читаемость кода.
#theory // Just Python
Иногда при отладке или логировании нужно узнать, в какой функции мы находимся. Новички могут прописывать имя функции вручную, но Python позволяет получить его автоматически с помощью inspect.
Модуль inspect предоставляет функцию
currentframe()
, которая возвращает текущий стек вызовов. А f_code.co_name вытаскивает имя функции. Это особенно полезно для логов, когда хочется избежать ручного дублирования.Итог:
С помощью inspect можно автоматически получать имя текущей функции, что упрощает логирование и повышает читаемость кода.
#theory // Just Python
Узнаем курс рубля за определенную дату
forex-python позволяет получать данные о курсе валют в определённое время и конвертировать одну валюту в другую.
Установка пакета - pip install forex-python.
Текущая программа позволяет нам узнать курс рубля относительно многих других валют мира за 28 апреля 2010 года(в 10 часов 53 минут 30 секунд).
Документация библиотеки находиться здесь.
#theory // Just Python
forex-python позволяет получать данные о курсе валют в определённое время и конвертировать одну валюту в другую.
Установка пакета - pip install forex-python.
Текущая программа позволяет нам узнать курс рубля относительно многих других валют мира за 28 апреля 2010 года(в 10 часов 53 минут 30 секунд).
Документация библиотеки находиться здесь.
#theory // Just Python
Random Forest
Random Forest — это не одно дерево, а сразу много. Каждый “деревце” в лесу обучается на случайной части данных и с использованием случайного поднабора признаков. Когда нужно предсказать класс или значение, все деревья голосуют, и побеждает большинство (в классификации) или усреднённый ответ (в регрессии). В результате снижается переобучение по сравнению с одиночным деревом, а сама модель меньше зависит от случайных шумов.
Сначала из обучающей выборки с помощью бутстрэпа выбирается случайная подвыборка (с возвращением). Для каждого дерева берётся случайный набор признаков. Все деревья предсказывают, и итоговый ответ — это агрегация: большинство голосов в классификации или среднее значение в регрессии.
Обрати внимание на пример. n_estimators определяет, сколько деревьев. max_depth — максимальная глубина каждого дерева. random_state — фиксируем сид, чтобы результат был воспроизводим. Можно добавлять class_weight='balanced', если классы несбалансированы.
#theory // Just Python
Random Forest — это не одно дерево, а сразу много. Каждый “деревце” в лесу обучается на случайной части данных и с использованием случайного поднабора признаков. Когда нужно предсказать класс или значение, все деревья голосуют, и побеждает большинство (в классификации) или усреднённый ответ (в регрессии). В результате снижается переобучение по сравнению с одиночным деревом, а сама модель меньше зависит от случайных шумов.
Сначала из обучающей выборки с помощью бутстрэпа выбирается случайная подвыборка (с возвращением). Для каждого дерева берётся случайный набор признаков. Все деревья предсказывают, и итоговый ответ — это агрегация: большинство голосов в классификации или среднее значение в регрессии.
Обрати внимание на пример. n_estimators определяет, сколько деревьев. max_depth — максимальная глубина каждого дерева. random_state — фиксируем сид, чтобы результат был воспроизводим. Можно добавлять class_weight='balanced', если классы несбалансированы.
#theory // Just Python
Проверяем тип переменной
В процессе разработки важно понимать, с каким типом данных вы работаете. Многие новички используют print(type(x)), чтобы узнать тип переменной, но Python предлагает более универсальный способ —
Функция
Итог:
#theory // Just Python
В процессе разработки важно понимать, с каким типом данных вы работаете. Многие новички используют print(type(x)), чтобы узнать тип переменной, но Python предлагает более универсальный способ —
isinstance()
.Функция
isinstance()
проверяет, принадлежит ли объект к определённому типу (или группе типов). Это особенно удобно при написании условий и обработке разных данных.Итог:
isinstance()
— удобный инструмент для проверки типов, особенно когда нужно обрабатывать переменные разных типов в одном блоке кода.#theory // Just Python
The Экономист
⚡️ Разыгрываем сразу 3 новеньких iPhone 16! Отличный вариант получить свежайшие гаджеты просто за то, что читаете нас! Для участия нужно: 1. Быть подписанным на The Экономист, Москоубизнес и Доллар по тридцать. 2. Нажать «Участвую!» под этим постом. …
Самое время подписаться на @economica, @mosbusy и @ruble30 и нажать «Участвую!» под этим постом, если вы ещё этого не сделали. Результаты уже 25 апреля в 18:00!
Please open Telegram to view this post
VIEW IN TELEGRAM
Антипаттерн недели:
В Python использование
Всегда явно указывайте тип исключения.
#theory // Just Python
except:
без указания типа исключенияВ Python использование
except:
без типа перехватывает все ошибки, включая системные (KeyboardInterrupt
, SystemExit
). Это может затруднить отладку и скрыть критические проблемы.Всегда явно указывайте тип исключения.
#theory // Just Python
Forwarded from Сегодня в тренде
Агентство Spektr выпустило карту крупнейших российских b2b-экосистем 2025 года. В топе по охватам по-прежнему сервисы Сбера и Яндекса.
Сбер лидирует в финансах, медицине и недвижимости. Яндекс — в мобильных сервисах, поиске и голосовых помощниках.
Исследование показывает, как эти экосистемы адаптируются под нужды людей, запускают новые продукты и меняют рынок.
@trends
Сбер лидирует в финансах, медицине и недвижимости. Яндекс — в мобильных сервисах, поиске и голосовых помощниках.
Исследование показывает, как эти экосистемы адаптируются под нужды людей, запускают новые продукты и меняют рынок.
@trends
Получаем путь к текущему файлу
При работе с файлами часто нужно знать, где находится сам исполняемый скрипт. Новички могут указывать путь вручную, но Python умеет получать его автоматически с помощью встроенного модуля os.
Функция
Итог:
С помощью
#theory // Just Python
При работе с файлами часто нужно знать, где находится сам исполняемый скрипт. Новички могут указывать путь вручную, но Python умеет получать его автоматически с помощью встроенного модуля os.
Функция
os.path.abspath(__file__)
возвращает абсолютный путь к текущему файлу, а os.path.dirname()
— директорию, в которой он находится.Итог:
С помощью
os.path.abspath(__file__)
и os.path.dirname()
можно динамически определять путь к текущему файлу и его директории — это удобно для настройки путей и работы с файлами без хардкода.#theory // Just Python
phonenumbers — это небольшая библиотека, для получения информации о номере телефона.
Что она умеет?
Данная библиотека имеет возможность узнать геолокацию номера телефона (страна, город), абонентом какого оператора он является, пройти проверку на валидацию и другое.
Сверху приведены два примера по валидации данных, но они возвращают разные значения
Почему так происходит?
Причина в том, что метод is_possible_number() быстро угадывает действительность телефонного номера, проверяя длину анализируемого номера, в то время как метод is_valid_number() выполняет полную проверку, проверяя длину, префикс телефонного номера и регион.
При итерации по большому списку телефонных номеров использование phonenumbers.is_possible_number() даст более быстрые результаты по сравнению с phonenumbers.is_valid_number() . Но, как мы видим здесь, эти результаты не всегда правильны. Так что используйте на свой страх и риск.
Ставится командой ⚙
#theory // Just Python
Что она умеет?
Данная библиотека имеет возможность узнать геолокацию номера телефона (страна, город), абонентом какого оператора он является, пройти проверку на валидацию и другое.
Сверху приведены два примера по валидации данных, но они возвращают разные значения
Почему так происходит?
Причина в том, что метод is_possible_number() быстро угадывает действительность телефонного номера, проверяя длину анализируемого номера, в то время как метод is_valid_number() выполняет полную проверку, проверяя длину, префикс телефонного номера и регион.
При итерации по большому списку телефонных номеров использование phonenumbers.is_possible_number() даст более быстрые результаты по сравнению с phonenumbers.is_valid_number() . Но, как мы видим здесь, эти результаты не всегда правильны. Так что используйте на свой страх и риск.
Ставится командой ⚙
pip install phonenumbers
Краткая документация(с pypi) и примеры кода здесь.#theory // Just Python
captcha — простая библиотека, которая генерирует заданную вами капчу!
Что умеет библиотека captcha?
Несомненно, библиотека слишком маленькая, но она всё же она имеет полезные функции, например: генерировать капчу ввиде фотографии(как показано на примере выше) и генерировать аудио капчу (аудиофайл).
Так же можно изменять шрифты на выбранные вами, что может быть полезно если tesseract(или другое приспособление для распознавания текста с фотографии) распознает текст. Если поиграться с различным настройками, может выйти что то годное.
Результат примера здесь.
Библиотека, кстати, досихпор обновляется, поэтому проблем быть не должно :3
Стоит отметить, что не нужно называть файл к примеру
Ставится командой ⚙
Краткая документация(с pypi) и примеры кода здесь!
#theory // Just Python
Что умеет библиотека captcha?
Несомненно, библиотека слишком маленькая, но она всё же она имеет полезные функции, например: генерировать капчу ввиде фотографии(как показано на примере выше) и генерировать аудио капчу (аудиофайл).
Так же можно изменять шрифты на выбранные вами, что может быть полезно если tesseract(или другое приспособление для распознавания текста с фотографии) распознает текст. Если поиграться с различным настройками, может выйти что то годное.
Результат примера здесь.
Библиотека, кстати, досихпор обновляется, поэтому проблем быть не должно :3
Стоит отметить, что не нужно называть файл к примеру
captcha.py
, ведь тогда Python запутается и выдаст ошибку :(Ставится командой ⚙
pip install captcha
Краткая документация(с pypi) и примеры кода здесь!
#theory // Just Python
dateutil — модуль, который предоставляет продвинутую обработку даты и времени на Python.
Почему стоит выбрать dateutil?
Работать с датой и временем с помощью встроенного модуля datetime в большом проекте — непростая задача. Учитывая количество изменений, которые требуется применить, при получении сырых данных.
Для этих целей был создан модуль dateutil. Он предоставляет расширения для методов, уже имеющихся в datetime.
Dateutil разбит на несколько подклассов: easter, parser, relativedelta, rrule, tz и некоторые другие.
Стоит отметить, что dateutil зависит от модуля datetime. Он использует его объекты.
Подкласс relativedelta предназначен для применения к существующей дате и времени и может заменять определенные компоненты этой даты и времени или представлять интервал времени.
В его основу положена характеристика великолепной работы М.-А. Лембург в своем расширении mx.DateTime. Однако обратите внимание, что этот тип НЕ реализует тот же алгоритм, что и его работа. НЕ ожидайте, что он будет вести себя как аналог mx.DateTime.
Это значит, что вы можете добавлять дни, месяца и года к текущему объекту datetime. Также есть возможность работать с интервалами, как это показано на примере выше :)
Ставится командой ⚙
Документация и примеры кода здесь.
#theory // Just Python
Почему стоит выбрать dateutil?
Работать с датой и временем с помощью встроенного модуля datetime в большом проекте — непростая задача. Учитывая количество изменений, которые требуется применить, при получении сырых данных.
Для этих целей был создан модуль dateutil. Он предоставляет расширения для методов, уже имеющихся в datetime.
Dateutil разбит на несколько подклассов: easter, parser, relativedelta, rrule, tz и некоторые другие.
Стоит отметить, что dateutil зависит от модуля datetime. Он использует его объекты.
Подкласс relativedelta предназначен для применения к существующей дате и времени и может заменять определенные компоненты этой даты и времени или представлять интервал времени.
В его основу положена характеристика великолепной работы М.-А. Лембург в своем расширении mx.DateTime. Однако обратите внимание, что этот тип НЕ реализует тот же алгоритм, что и его работа. НЕ ожидайте, что он будет вести себя как аналог mx.DateTime.
Это значит, что вы можете добавлять дни, месяца и года к текущему объекту datetime. Также есть возможность работать с интервалами, как это показано на примере выше :)
Ставится командой ⚙
pip install python-dateutil
Документация и примеры кода здесь.
#theory // Just Python
importlib.invalidate_caches
#theory // Just Python
importlib.invalidate_caches()
очищает внутренний кэш путей поиска модулей. Это полезно при динамическом создании или удалении .py файлов, особенно в тестах, плагинах и REPL-средах, когда модуль может появиться в процессе выполнения#theory // Just Python
faulthandler.dump_traceback_later
#theory // Just Python
faulthandler.dump_traceback_later
планирует автоматический вывод стека вызовов через заданное количество секунд. Это полезно для отладки зависших программ, бесконечных циклов или неожиданных блокировок#theory // Just Python
qrcode — довольно простой модуль, для генерации qr cod'ов в Python!
Разберёмся с формулировками:
Метод QRCode.add_data() добавит данные к текущему объекту qr. Чтобы добавить новые данные путем замены предыдущего содержимого в том же объекте, сначала используйте метод QRCode.clear().
QR-код — это виртуальная база данных в виде незамысловатого значка и хранит в себе около 4200 символов, в последствии QR-код можно отсканировать и получить информацию заложенную в нём. Аббревиатура QR (quick response) переводится как быстрое реагирование.
Примеры
На примере выше мы добавляем данные с помощью метода qr.add_data , определеляем переменную img и сохраняем наш qr-код.
Очищаем qr-код и добавляем новые данные :3
У модуля qrcode есть множество методов для кастомизации qr-кодов. Например в телеграмме тоже есть кастомизация qr-кодов(для входа в аккаунт или отправки qr-cod'a своего аккаунта. Так же модуль довольно гибок, поэтому настроить его можно полностью под себя :)
Ставится командой ⚙
#theory // Just Python
Разберёмся с формулировками:
Метод QRCode.add_data() добавит данные к текущему объекту qr. Чтобы добавить новые данные путем замены предыдущего содержимого в том же объекте, сначала используйте метод QRCode.clear().
QR-код — это виртуальная база данных в виде незамысловатого значка и хранит в себе около 4200 символов, в последствии QR-код можно отсканировать и получить информацию заложенную в нём. Аббревиатура QR (quick response) переводится как быстрое реагирование.
Примеры
На примере выше мы добавляем данные с помощью метода qr.add_data , определеляем переменную img и сохраняем наш qr-код.
Очищаем qr-код и добавляем новые данные :3
У модуля qrcode есть множество методов для кастомизации qr-кодов. Например в телеграмме тоже есть кастомизация qr-кодов(для входа в аккаунт или отправки qr-cod'a своего аккаунта. Так же модуль довольно гибок, поэтому настроить его можно полностью под себя :)
Ставится командой ⚙
pip install qrcode
Документация и примеры кода здесь.#theory // Just Python
reduce() — функция, которая последовательно применяет функцию-аргумент к элементам списка и возвращает единое значение.
Чем отличается reduce от map и filter?
reduce() не возвращает новый список, основанный на функции и итерационный, который мы передали. Вместо этого он возвращает одно значение.
Как работает reduce?
reduce() работает вызывая функцию |, которую мы передали для первых двух элементов последовательности. Результат, возвращаемый функцией |, используется в другом вызове функции вместе со следующим (в данном случае третьим) элементом.
Этот процесс повторяется до тех пор, пока мы не пройдем через все элементы последовательности.
Необязательный аргумент initial используется, когда он присутствует, в начале этого цикла с первым элементом в первом вызове функции. В некотором смысле элемент initial является 0-м элементом перед первым, когда он указан.
Подробнее про функцию reduce вы можете почитать здесь :3
#theory // Just Python
Чем отличается reduce от map и filter?
reduce() не возвращает новый список, основанный на функции и итерационный, который мы передали. Вместо этого он возвращает одно значение.
Как работает reduce?
reduce() работает вызывая функцию |, которую мы передали для первых двух элементов последовательности. Результат, возвращаемый функцией |, используется в другом вызове функции вместе со следующим (в данном случае третьим) элементом.
Этот процесс повторяется до тех пор, пока мы не пройдем через все элементы последовательности.
Необязательный аргумент initial используется, когда он присутствует, в начале этого цикла с первым элементом в первом вызове функции. В некотором смысле элемент initial является 0-м элементом перед первым, когда он указан.
Подробнее про функцию reduce вы можете почитать здесь :3
#theory // Just Python