54326
№ 4931117861 Публикуем интересные/полезные фичи/библиотеки языка. По вопросам сотрудничества: @adv_and_pr Канал на бирже: https://telega.in/c/seniorpy
Работа с регистрами
Строки в Python имеют свойство регистра — прописные и строчные буквы считаются разными символами.
Для преобразования регистра используются методы строк:str.upper() — преобразует строку к верхнему регистру.str.lower() — преобразует строку к нижнему регистру.str.swapcase() — меняет регистр каждого символа на противоположный.str.capitalize() — делает первую букву заглавной, остальные строчными.
Регистр конкретного символа можно проверить в строке методами:str.isupper() — проверка на заглавный регистр.str.islower() — проверка на строчный регистр.
Регистр важно учитывать при сравнении строк на равенство.
#это_база
Dictionary Comprehension
Dictionary comprehension — это конструкция, позволяющая компактным способом создавать словари на основе существующих итерируемых объектов.
Dictionary comprehension применяется в ситуациях, когда нужно:
— Быстро создать словарь из списка или другого итерируемого объекта.
— Преобразовать одну структуру данных в словарь.
— Создать словарь с некоторой обработкой элементов.
Основные преимущества dictionary comprehension:
— Компактный и читаемый синтаксис по сравнению с циклами.
— Лаконичное создание словарей "на лету".
— Оптимизированная производительность по сравнению с циклами.
super()
super() — это встроенная функция, которая используется для вызова родительского класса. Она позволяет вызывать методы родительского класса из дочернего класса.
Это полезно при наследовании, чтобы использовать функционал базового класса.
Вызов super() ищет следующий класс в цепочке наследования и вызывает этот метод.
Функция принимает аргументы self и cls для связывания с текущим объектом и классом.
Она часто используется в методах init дочерних классов, чтобы вызвать init родителя и инициализировать его.
Использование super() позволяет избежать неявного упоминания имени базового класса в коде.
#это_база
#вопросы_с_собеседований
Что такое async?
Async — это синтаксис для создания асинхронного кода на основе корутин.
Асинхронное программирование позволяет выполнять операции вне основного потока выполнения программы.
С помощью async def определяются асинхронные функции-корутины. Такие функции не выполняются сразу, а возвращают объект-корутину.
Для запуска корутин используется await. Это передает управление обратно в событийный цикл до завершения корутины.
Asyncio — стандартный модуль для работы с асинхронным кодом. Он содержит событийный цикл и различные классы.
Асинхронный код усложняет логику программы, но позволяет добиться большей производительности за счет неблокирующих вызовов.
*Корутины полезны для операций ввода/вывода, ожидания сети, обращения к БД — там, где нужно не блокировать основной поток.
⌨️ Многозадачность в python. Асинхронность, процессы, потоки
Приглашаем на открытый урок.
🗓 04 августа в 20:00 МСК
🆓 Бесплатно. Урок в рамках старта курса «Python-разработчик. Продвинутый уровень».
Что будет на вебинаре?
✔️ Разберём особенности различных способов реализации многозадачности.
✔️ Рассмотрим оптимальные случаи применения каждого из способов
✔️ Увидим изменения в реализации многозадачности в различных версиях Python
Что в результате вебинара узнают слушатели? Как/где смогут применить полученные навыки?
- Выбирать оптимальную реализацию многозадачности в зависимости от решаемой проблемы
- Получать значения метрик, необходимых для анализа преимуществ внедрения многозадачности
- Создавать код, использующий аппаратные ресурсы более оптимальным способом.
🔗 Ссылка на регистрацию: https://otus.pw/nLna/
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
pprint()
Функция pprint() предназначена для красивого форматированного вывода данных.pprint() форматирует произвольные структуры данных, такие как вложенные списки, словари, кортежи для удобочитаемого вывода.
По умолчанию выводит данные с отступами и переносами, чтобы структура была наглядной.
Может принимать ширину вывода в количестве символов для лучшего форматирования.
Имеет параметры depth и compact для настройки уровня вложенности и режима компактного вывода.
Функционал pprint() доступен через модуль pprint в стандартной библиотеке.
#это_база
Функция dir()
Функция dir() используется для получения списка атрибутов и методов объекта.
Она принимает объект в качестве аргумента и возвращает список его атрибутов и методов в виде строк.
Для модулей dir() возвращает список определенных в нем имен. Для классов возвращаются его атрибуты, методы и внутренние функции.
С помощью dir() можно получить список ключевых слов языка, передав builtin или builtins в качестве аргумента.
Без аргументов dir() возвращает список имен, определенных в текущей области видимости.
#это_база
Базовые методы машинного обучения уже не дают полного ответа на рабочие задачи? Временные ряды, рекомендательные системы, Байесовские методы и обучение с подкреплением требуют другой глубины: нужно понимать, что происходит под капотом моделей.
🗓10 августа в 18:00 МСК приглашаем вас на открытый урок курса «Машинное обучение. Экспертный уровень».
Разберём ключевые технологии продвинутого машинного обучения, их применение в современных проектах и задачи, где особенно востребованы временные ряды, рекомендательные системы и обучение с подкреплением.
Присоединяйтесь, если хотите выйти за рамки базовых материалов, увидеть иерархию продвинутых методов и точнее понимать, какие инструменты применять в сложных задачах анализа данных: https://otus.pw/jIMF/
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Функция groupby()
Функция groupby() из модуля itertools в Python используется для группировки элементов итератора по значению ключа. Она применяется к итератору (списку, кортежу, строке) и возвращает объект groupby, который представляет собой итератор по группам.
Синтаксис:
groupby(iterable, key=None)
iterable: Итерируемый объект, который нужно сгруппировать.key: Функция, которая извлекает ключ из каждого элемента итератора. По умолчанию используется функция lambda x: x, которая возвращает сам элемент.
Функция hex()
Функция hex() в Python используется для преобразования целого числа в его шестнадцатеричное представление. Она принимает один аргумент — целое число, которое нужно превратить, и возвращает срок с его шестнадцатеричной представлением.
#для_продвинутых
Функция abspath()
Функция abspath() возвращает абсолютный путь к указанному пути. Абсолютный путь — это путь, который начинается с корневого каталога файловой системы.
Функция abspath() принимает в качестве аргумента путь к файлу или каталогу. Путь может быть относительным или абсолютным.
Если путь является относительным, то функция abspath() преобразует его в абсолютный, относительно текущего рабочего каталога.
Если путь является абсолютным, то функция abspath() возвращает его без изменений.
#для_начинающих
struct.Struct()
Модуль struct позволяет преобразовывать между Python-значениями и C-структурами, представленными как объекты bytes. Компактные форматные строки описывают предполагаемые преобразования в/из Python-значений.
Синтаксис:
struct.Struct(format_string)
format_string — строка формата, описывающая структуру.
Метод truncate()
Метод truncate() модуля os обрезает файл, соответствующий пути path, так, чтобы он имел длину не более length байтов.
Синтаксис:
os.truncate(path, length), где
path - str, путь в файловой системе до файла,
length - int, размер в байтах.
Подробнее можно почитать здесь.
3 интересных функции в random
Этот пост более для тех, у кого есть соответствующий бэкграунд и кто хочет знать про random больше среднего.
betavariate() — используется для получения случайного числа с плавающей запятой от 0 до 1 на основе бета-распределения (применяется для статистических расчетов).
gauss() — генерирует случайное число с плавающей запятой на основе распределения Гаусса (используется в теории вероятности).
paretovariate() — возвращает случайное число с плавающей запятой на основе распределения Парето (используется в теории вероятности).
eval() и exec()
Python имеет возможность динамически считывать строку и обрабатывать ее как часть программного кода. Это достигается с помощью функций eval() и exec() (eval предназначена для вычисления выражений, а exec – для выполнения операторов).
В строке 3 функция eval() считывает входную строку как выражение Python, вычисляет ее и присваивает результат переменной b. В строке 7 функция exec() считывает входную строку, как оператор Python и выполняет ее.
⌨️ Docker для python разработчика
Приглашаем на открытый урок.
🗓 20 августа в 20:00 МСК
🆓 Бесплатно. Урок в рамках старта курса «Python-разработчик. Продвинутый уровень».
Что будет на вебинаре?
✔️ Разберём особенности использования Docker для контейнеризации решений на Python.
✔️ Рассмотрим лучшие практики контейнеризации.
✔️ Разберём способы оркестрации мультиконтейнерных решений
Что в результате вебинара узнают слушатели? Как/где смогут применить полученные навыки?
- Использовать Docker для контейнеризации решений на продвинутом уровне.
- Применять лучшие практики контейнеризации.
- Управлять оркестрацией контейнеров различными способами.
🔗 Ссылка на регистрацию: https://otus.pw/v70O/
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
#вопросы_с_собеседований
Что такое Middleware?
Middleware — это промежуточное программное обеспечение, которое располагается между приложением и сетевыми службами.
Основная цель middleware — обработка запросов и ответов между клиентом и сервером.
Middleware выполняет такие функции, как:
— Аутентификация и авторизация пользователей
— Маршрутизация запросов к соответствующим сервисам или микросервисам
— Логирование и мониторинг
— Кэширование ответов для повышения производительности
— Балансировка нагрузки между серверами
— Шифрование и дешифрование данных
— Проверка и валидация данных
— Форматирование ответов в нужный формат
— Обработка ошибок и исключений
Использование middleware позволяет разделить логику приложения и инфраструктуры, упростить масштабирование и модификацию отдельных компонентов.
#вопросы_с_собеседований
Что такое await?
Await используется для работы с асинхронным кодом и корутинами.
Его можно применять только внутри асинхронной функции, определенной с async def. Await позволяет избежать блокировки основного потока программы во время ожидания результатов asynс-функций.
Await делает возможным использование асинхронного кода в синхронном стиле последовательно. При вызове await передается управление обратно событийному циклу.
Выполнение функции приостанавливается до завершения await-выражения.
Чаще всего await используется при вызове асинхронных функций и методов — для ожидания результата.
Await также может применяться к объектам asyncio.Future и asyncio.Task для ожидания их завершения.
Если await вызывается для корутины, то выполнение текущей корутины приостанавливается до завершения той, которая вызвана.
#вопросы_с_собеседований
Какая разница в быстродействии между django и Flask и почему?
Django чуть медленнее Flask из-за своей более высокой функциональности и накладных расходов. Однако на практике разница в скорости работы между ними незначительна для большинства веб-приложений.
Flask может быть немного быстрее при обработке простых запросов, но Django лучше масштабируется при увеличении нагрузки благодаря встроенным инструментам кэширования и оптимизации.
Кроме того, производительность в большей степени зависит от архитектуры и качества кода конкретного приложения.
Что такое Протоколы
Протоколы — это соглашения, которые определяют интерфейс класса и поведение его объектов.
Протоколы задаются с помощью специальных методов, таких как str, len и другие.
Они позволяют классам работать с различными функциями и операторами языка.
Реализуя протоколы можно интегрировать классы в языке и делать их поведение естественным и интуитивным.
В Python есть протоколы для чисел, итераторов, контекстных менеджеров, атрибутов и других областей.
Встроенные и сторонние библиотеки полагаются на стандартные протоколы.
#это_база
Библиотека psychopy
PsychoPy — это библиотека для создания экспериментов в области психологии и нейронауки.
Библиотека позволяет создавать различные стимулы — текст, изображения, звуки, видео.
— Есть функции для отслеживания реакции испытуемых — регистрации нажатий клавиш, движения мыши, электроэнцефалограммы.
— Поддерживает создание протоколов экспериментов с использованием последовательностей стимулов и логики.
— Можно создавать окна для отображения стимулов разных типов.
— Позволяет экспортировать данные в разные форматы для последующей обработки.
Библиотека astropy
astropy — это библиотека для астрономии и астрофизики на Python.
Она содержит функционал для работы с астрономическими данными в разных форматах, включая FITS, ASCII и VOTable.
— Предоставляет классы и утилиты для представления и преобразования координат, дат, времени.
— Содержит поддержку физических величин с общим интерфейсом для работы с единицами измерения.
— Встроены статистические и математические функции, полезные для астрономии.
— Имеются утилиты для чтения данных из астрономических каталогов и баз.аstropy легко расширяема — можно добавлять собственные пакеты для специфичных задач.
Функция permutations()
Функция permutations() из модуля itertools в Python используется для генерации всех возможных перестановок элементов из итерируемого объекта.
Синтаксис:
itertools.permutations(iterable, r=None)
iterable: Итерируемый объект, например, список, строка или кортеж.r (опционально): Целое число, указывающее длину перестановок. Если не указано, то по умолчанию генерируются все перестановки возможной длины.
Функция attrgetter()
Функция attrgetter() из модуля operator используется для получения значения атрибута объекта. Она позволяет избежать явного указания имени атрибута, что может сделать код более читаемым и удобным.
#для_продвинутых
Функция oct()
Функция oct() в Python принимает один аргумент: число — целое число (двоичное, десятичное или шестнадцатеричное) или объект, который должен реализовать метод index() для возврата целого числа. Функция возвращает строку с восьмеричным представлением числа.
#для_начинающих
pathlib.PureWindowsPath()
В модуле pathlib функция pathlib.PureWindowsPath() используется для создания объекта пути Windows. Этот объект представляет собой путь в файловой системе Windows, но не выполняет никаких операций ввода-вывода.
Аргумент path может быть строкой, представляющей путь Windows, или другим объектом пути, который можно привести к типу PureWindowsPath.
#для_начинающих
Проверка существования файла
Важно знать, существуют ли используемые в коде файлы. Python здорово облегчает управление файлами благодаря встроенному синтаксису для чтения и записи файлов.
Создаем бесконечный итератор
Функция cycle() из itertools принимает на вход итерируемый объект и создает бесконечный итератор, циклически возвращающий элементы данного объекта.
Фишка заключается в том, что когда элементы последовательности заканчиваются, итерация начинается вновь с первого элемента.
Но если вы проходитесь циклом по такому итератору, то важно предусмотреть выход из цикла, иначе он станет бесконечным (как у нас в первом случае на картинке).
Мы также можем воспользоваться islice(), который вернет итератор по подмножеству переданного объекта.
Комбинируем графики
Matplotlib может легко комбинировать графики для отображения. Достаточно их просто объявить. Также указываем их положения с помощью функции subplot(). Выставляем имена, чтобы было наглядно, и выводим итоговое изображение.
Поиск подстроки
Этот пример будет полезен для поиска подстроки в строке. Я реализую его двумя способами, позволяющими не писать много кода.