Возврат нескольких значений
Функции в Python могут возвращать более одной переменной без применения словаря, списка или класса.
Здесь возвращается кортеж. С тем же эффектом можно было бы написать return (name, birthdate).
Это нормально для ограниченного количества возвращаемых значений. Но все, что превышает 3 значения, должно быть помещено в класс (data).
#theory // Just Python
Функции в Python могут возвращать более одной переменной без применения словаря, списка или класса.
Здесь возвращается кортеж. С тем же эффектом можно было бы написать return (name, birthdate).
Это нормально для ограниченного количества возвращаемых значений. Но все, что превышает 3 значения, должно быть помещено в класс (data).
#theory // Just Python
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