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

Сотрудничество – @HackingIP
Download Telegram
Константы модуля string

Модуль string в Python предоставляет ряд полезных констант, которые помогают работать со строками более эффективно и удобно.

➡️ Основной список:

1. string.ascii_letters: Содержит все буквы английского алфавита (как заглавные, так и строчные).
2. string.digits: Включает все десятичные цифры от 0 до 9.
3. string.hexdigits: Содержит шестнадцатеричные цифры (0-9 и a-f, A-F).
4. string.octdigits: Включает восьмеричные цифры (0-7).
5. string.punctuation: Содержит все знаки пунктуации.
6. string.whitespace: Включает все пробельные символы (пробелы, табуляции и переносы строк).

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

import string

# Функция проверяет, состоит ли строка только из букв
def is_alpha(s):
return all(char in string.ascii_letters for char in s)

# Тестируем функцию
print(is_alpha("HelloWorld")) # Вывод: True
print(is_alpha("Hello World!")) # Вывод: False


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


🐍 Python Map | Обучение
🔥3💯1
Взаимодействие с файлами в Python

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

Открытие файла

Для открытия файла используйте функцию open(). Вот синтаксис:

file = open('имя_файла.txt', 'режим')


Где режим может быть:
- 'r' - чтение (по умолчанию)
- 'w' - запись (создает новый файл или перезаписывает существующий)
- 'a' - добавление (добавляет данные в конец файла)
- 'b' - двоичный режим (например, 'rb' для чтения двоичных файлов).

Чтение из файла

- read(размер) - читает заданное количество байтов или весь файл
- readline() - читает одну строку файла
- readlines() - читает список всех строк файла

Запись в файл

- write(данные) - записывает данные в файл
- writelines(список) - записывает список строк в файл

Другие операции

- close() - закрывает файл
- seek(смещение, откуда) - устанавливает указатель чтения/записи
- tell() - возвращает текущее положение указателя

Пример: считывание файла

with open('my_file.txt', 'r') as f:
    for line in f:
        print(line)


Пример: запись в файл

with open('my_file.txt', 'w') as f:
    f.write('Это строка, записанная в файл.')


Обработка исключений

Python обрабатывает исключения, связанные с файлами, с помощью следующих классов:

FileNotFoundError: файл не найден
PermissionError: нет разрешения на открытие файла
IOError: общая ошибка ввода-вывода.

try:
with open('несуществующий_файл.txt', 'r') as file:
content = file.read()
except FileNotFoundError:
print("Файл не найден.")


Закрытие файла

Важно закрывать файлы после их использования, чтобы избежать утечек ресурсов:

file.close()


Использование контекстного менеджера with автоматически закроет файл, когда блок кода завершится.

🐍 Python Map | Обучение
🔥2👍1🏆1
📄 Модуль logging

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

Основные возможности

- Записывать сообщения разного уровня важности (DEBUG, INFO, WARNING, ERROR, и CRITICAL).
- Конфигурировать формат сообщений, включая временные метки, уровень логирования и текст сообщения.
- Записывать логи не только в консоль, но и в файлы, сетевые сокеты и даже базы данных.

Пример простого приложения с логированием

import logging

# Настройка логирования
logging.basicConfig(
level=logging.DEBUG, # Устанавливаем уровень логирования
format='%(asctime)s - %(levelname)s - %(message)s', # Формат сообщения
handlers=[
logging.FileHandler("app.log"), # Запись логов в файл
logging.StreamHandler() # Вывод логов в консоль
]
)

# Примеры логирования
def main():
logging.debug("Это отладочное сообщение.")
logging.info("Приложение запущено.")
try:
result = 10 / 0 # Исключение
except ZeroDivisionError:
logging.error("Деление на ноль произошло.", exc_info=True) # Логируем ошибку
logging.warning("Это предупреждающее сообщение.")
logging.info("Приложение завершено.")

if __name__ == "__main__":
main()



Объяснение кода

1. Импорт модуля: Сначала импортируется модуль logging.
2. Настройка логирования: basicConfig настраивает уровень логирования и формат сообщений. Логи будут выводиться как в файл app.log, так и в консоль.
3. Функция: В функции main записываются информационные и ошибочные сообщения, что позволяет отслеживать поведение программы.

Вывод логов

После выполнения программы в консоли и в файле app.log вы увидите записи, которые будут выглядеть примерно так:

2024-09-14 11:05:02,123 - DEBUG - Это отладочное сообщение.
2024-09-14 11:05:02,124 - INFO - Приложение запущено.
2024-09-14 11:05:02,125 - ERROR - Деление на ноль произошло.
Traceback (most recent call last):
File "app.py", line 10, in main
result = 10 / 0
ZeroDivisionError: division by zero
2024-09-14 11:05:02,126 - WARNING - Это предупреждающее сообщение.
2024-09-14 11:05:02,127 - INFO - Приложение завершено.


🐍 Python Map | Обучение
😎51🔥1
Создаем прогресс-бар

Библиотека rich для Python предоставляет мощные инструменты для создания консольных приложений с красивым выводом. Один из её важных компонентов — модуль progress, который позволяет удобно отображать прогресс выполнения различных задач через прогресс-бары в консольных приложениях.

Прогресс-бар — это индикатор, который отображает прогресс выполнения задачи.


— Метод add_task добавляет новую задачу в прогрессбар. Задача получает описание и общее количество шагов.
— В цикле обновляется прогресс с помощью метода update, который увеличивает значение прогресса и добавляет задержку для демонстрации работы.

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


🐍 Python Map | Обучение
41🏆1
Модуль fnmatch: функция fnmatch

Функция fnmatch из модуля fnmatch предназначена для сравнения строки с шаблоном, используя символы подстановки. Она позволяет проверять, соответствует ли заданная строка определенному шаблону.

Синтаксис:

fnmatch.fnmatch(name, pat)


Где:
- name: строка, которую нужно проверить.
- pat: строка-шаблон, содержащая символы подстановки, такие как * (любое количество символов или пустая последовательность) и ? (ровно один любой символ).

Примечание:
Оба параметра name и pat нормализуются с помощью os.path.normcase().

🐍 Python Map | Обучение
👍2🔥21
Модуль slugify

Слаг — это упрощенная версия заголовка или названия, в которой специальные символы заменяются на дефисы (-), а все буквы становятся строчными. Например, заголовок "Как создать слаг в Python!" превращается в "kak-sozdat-slag-v-python".

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

from slugify import slugify

title = "Пример поста о создании слагов"
slug = slugify(title)
print(slug) # вывод: primer-posta-o-sozdanii-slagov


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

Установка библиотеки:
pip install python-slugify


🐍 Python Map | Обучение
🔥5😎1
Нормализация строк: метод 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