Python Map | Обучение
246 subscribers
196 photos
4 videos
1 file
85 links
Образовательный канал для программистов на Python 🐍

Сотрудничество – @HackingIP
Download Telegram
Нормализация строк: метод casefold()

Нормализация строк - это полноценное приведение текста к единому представлению.

casefold() — это метод строк, который преобразует все символы строки в нижний регистр, при этом учитывая особенности различных языков.

Он похож на метод lower(), но более агрессивен, потому что он предназначен для удаления всех различий регистра в строке.


В первом примере sign1 - "микрознак", sign2 - "греческая строчная буква мю".

Интерпретатор Python видит эти символы как два разных, но в Unicode они имеют одинаковое отображение.


🐍 Python Map | Обучение
🔥31
Модуль collections: класс namedtuple

namedtuple — это структура данных в Python, позволяющая создавать кортежи с именованными полями. Она делает работу с данными более читабельной и удобной, позволяя обращаться к элементам как по имени, так и по индексу.

📄 Синтаксис:

namedtuple(typename, field_names, rename=False, defaults=None, module=None)


Где:

typename: имя класса
field_names: последовательность строк, имена полей
rename: авто-переименование повторяющихся имен
defaults: итерируемая последовательность, значения по умолчанию
module: модуль кортежа

⚙️ Подробнее:
Класс namedtuple создает новый подкласс кортежа с именем typename. Этот подкласс обеспечивает создание объектов, которые имеют индексируемые и итерируемые поля. Экземпляры также имеют документацию с typename и field_names, а метод repr() выводит кортеж в формате name=value.

🆚 Dict vs namedtyple:
Экземпляры именованных кортежей не имеют словарей, поэтому они легковесны и требуют не больше памяти, чем обычные кортежи.

🐍 Python Map | Обучение
👍2🔥21
Модуль functools: декоратор lru_cache

lru_cache — это декоратор для кэширования результатов функций, использующий стратегию «Least Recently Used» (LRU). Он удаляет наименее используемые значения из кэша при достижении лимита, освобождая место для новых вызовов.

Это экономит время и ресурсы при многократных вызовах функций с одинаковыми аргументами.


📄 Синтаксис:

@lru_cache(maxsize=128, typed=False)
def user_function():
...


Где:
maxsize=128: максимальный размер кеша (если значение равно None, кэш не будет ограничен);
typed=False: как кэшировать при разных типах аргументов (если установлен в True, кэш будет различать результаты для разных типов данных).

⚙️ Подробнее:

Позиционные и ключевые аргументы должны быть хешируемыми, так как для кэширования используется словарь.

Специфичность типа применяется только к непосредственным аргументам функции, а не к их содержимому.

🐍 Python Map | Обучение
🔥31👍1
Модуль hupper

Hupper — это библиотека для Python, которая автоматически перезагружает приложения при изменениях в коде. Она облегчает разработку, позволяя мгновенно видеть результаты без ручного перезапуска.

Основные характеристики:

1. Hupper отслеживает изменения в файлах и автоматически перезапускает приложение, упрощая разработку.
2. Установка и настройка Hupper быстры и просты, позволяя сосредоточиться на программировании.
3. Библиотека совместима с различными Python-приложениями, включая веб-сервисы и скрипты.


Установка библиотеки:
pip install hupper


🗂 Документация

🐍 Python Map | Обучение
3
Да потом как ни будь...

🐍 Python Map | Обучение | #юмор
😁8🤩1
Хранение атрибутов и методов в классах

В Python атрибуты и методы класса хранятся в специальном словаре, называемом __dict__. Этот словарь является атрибутом класса и позволяет хранить все его атрибуты и методы в формате пар "ключ-значение". Каждый ключ соответствует имени атрибута или метода, а значение представляет собой сам объект.

Кроме того, каждый экземпляр класса имеет свой собственный __dict__, в котором хранятся атрибуты, специфичные для данного объекта. Это позволяет различным экземплярам одного класса иметь уникальные значения своих атрибутов, при этом общие методы и атрибуты класса остаются доступны для всех объектов.

🐍 Python Map | Обучение | #теория
5👍1
Модуль JMESPath

JMESPath — это библиотека для Python, предназначенная для работы с JSON-данными. Она позволяет легко извлекать значения, фильтровать массивы и преобразовывать данные в нужный формат.

Основные возможности:
1. Извлечение данных: Используйте выражения, похожие на SQL-запросы, для получения данных из JSON.
2. Фильтрация: Выбирайте элементы массивов по заданным условиям.
3. Преобразование данных: Подготовка данных для дальнейшего анализа.
4. Поддержка вложенных структур: Работа с сложными JSON-объектами, что полезно для API.


Установка библиотеки:
pip install jmespath


🐍 Python Map | Обучение
🔥3👍1
🐍 Цветной вывод в консоль 🎨

🖌 Сегодня мы рассмотрим как, используя управляющие последовательности ANSI, можно легко добавлять цвет и стиль в текст, выводимый в консоль.

💻 Это может улучшить читаемость и визуальное восприятие сообщений в ваших приложениях.

Разбор + код 👇

🐍 Python Map | Обучение | #статьи
🔥3👍1
Горячие клавиши VS Code

Очень полезная шпаргалка, в которой собран весь список горячих клавиш для VS Code.


👉 Демонстрация
🗂 Скачать полную версию

🐍 Python Map | Обучение
👍41🔥1
🔥Какой браузер лучше по вашему мнению?
Anonymous Poll
30%
Chrome
29%
Firefox
14%
Opera
23%
Yandex
4%
Edge
0%
Safari
Модуль contextlib: декоратор contextmanager

Декоратор contextmanager из модуля contextlib в Python позволяет создавать контекстные менеджеры для оператора with без необходимости писать класс и методы __enter__() и __exit__(). Это упрощает управление ресурсами, автоматически закрывая их после завершения блока кода.


Объяснение:

1.Код перед yield выполняется при входе в контекст.
2. Значение yield передаётся в блок with, позволяя взаимодействовать с ресурсом c помощью оператора as.
3. Код в блоке finally выполняется при выходе из блока with, что гарантирует закрытие ресурса, даже если произошло исключение.

Декоратор contextmanager упрощает написание контекстных менеджеров, делая код компактным и удобным для чтения.


🐍 Python Map | Обучение
👍2
Модуль itertools: итератор cycle

Итератор cycle из модуля itertools позволяет бесконечно итерироваться по элементам заданного итерируемого объекта (например, списка или строки), возвращая их по одному и повторяя при достижении конца.

Синтаксис:
itertools.cycle(iterable)


Где:
iterable - итерируемая последовательность

Возвращаемое значение:
бесконечный итератор

Эта функция может быть полезна для создания механизма, который чередует выполнение задач в многопоточных или многопроцессорных приложениях, обеспечивая равномерное распределение нагрузки и обработку данных.

🐍 Python Map | Обучение
👍2
Что общего у собеса в айти и родительского собрания?

Ответ в пункте 15.
😁2👍1
Библиотека Fire

Библиотека Fire — мощный инструмент от Google, который автоматически генерирует интерфейсы командной строки (CLI) из функций, классов и модулей с минимальной настройкой.

Она упрощает создание командных интерфейсов, позволяя разработчикам быстро превращать свои объекты в удобные CLI-приложения.


⚙️ Пример использования:

import fire

def greet(name: str, age: int = 18):
return f'Привет, {name}! Тебе {age} лет.'

if __name__ == '__main__':
fire.Fire(greet)


Затем можно запустить скрипт из командной строки и передать аргументы:

python script.py --name Alice --age 24


💾 Установка:

pip install fire


🔗 Ссылка на GitHub

🐍 Python Map | Обучение
👍3
Шаблонизатор Jinja

Jinja — мощный шаблонизатор для Python, используемый для генерации HTML, XML и других документов. Он широко применяется в веб-приложениях и является стандартным шаблонизатором для Flask.

Основные особенности Jinja:

- Чистота и читаемость кода
- Условные конструкции и циклы
- Наследование шаблонов
- Фильтры и макросы

Пример использования Jinja:

from jinja2 import Environment, FileSystemLoader

# Создание среды для поиска шаблонов
env = Environment(loader=FileSystemLoader('templates'))

# Загрузка шаблона
template = env.get_template('index.html')

# Данные для шаблона
data = {'name': 'Мир'}

# Генерация HTML
output = template.render(data)
print(output)


index.html:
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<title>Привет, {{ name }}!</title>
</head>
<body>
<h1>Добро пожаловать, {{ name }}!</h1>
</body>
</html>


🐍 Python Map | Обучение
🔥311
Метод str.zfill()

Метод zfill используется для дополнения строки нулями слева до заданной длины. Это особенно полезно при форматировании чисел, чтобы обеспечить одинаковую длину и выравнивание.

Синтаксис:
str.zfill(width)


Параметры:
- width: Длина результирующей строки. Если строка уже длиннее указанной длины, zfill() не изменяет её.

Примеры использования:

num = "42"
print(num.zfill(5)) # Вывод: 00042

neg_num = "-3"
print(neg_num.zfill(4)) # Вывод: -003

pos_num = "+5"
print(pos_num.zfill(4)) # Вывод: +005

big_num = "1234"
print(big_num.zfill(3)) # Вывод: 1234


Основные моменты:
- Метод добавляет нули только слева от строки.
- Если строка содержит знак '-' или '+', он будет расположен перед нулями.
- Это полезно для форматирования строк чисел, например, в табличных данных или выводе.

🐍 Python Map | Обучение