Константы модуля string
Модуль string в Python предоставляет ряд полезных констант, которые помогают работать со строками более эффективно и удобно.
➡️ Основной список:
1.
2.
3.
4.
5.
6.
➡️ Пример использования:
🐍 Python Map | Обучение
Модуль 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 предоставляет мощные возможности для работы с файлами, что позволяет программам читать, записывать и обрабатывать текстовые и двоичные данные.
Открытие файла
Для открытия файла используйте функцию
Где режим может быть:
-
-
-
-
Чтение из файла
- read(размер) - читает заданное количество байтов или весь файл
- readline() - читает одну строку файла
- readlines() - читает список всех строк файла
Запись в файл
- write(данные) - записывает данные в файл
- writelines(список) - записывает список строк в файл
Другие операции
- close() - закрывает файл
- seek(смещение, откуда) - устанавливает указатель чтения/записи
- tell() - возвращает текущее положение указателя
Пример: считывание файла
Пример: запись в файл
Обработка исключений
Python обрабатывает исключения, связанные с файлами, с помощью следующих классов:
FileNotFoundError: файл не найден
PermissionError: нет разрешения на открытие файла
IOError: общая ошибка ввода-вывода.
Закрытие файла
Важно закрывать файлы после их использования, чтобы избежать утечек ресурсов:
Использование контекстного менеджера with автоматически закроет файл, когда блок кода завершится.
🐍 Python Map | Обучение
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 для этого часто используется встроенный модуль
Основные возможности
- Записывать сообщения разного уровня важности (
- Конфигурировать формат сообщений, включая временные метки, уровень логирования и текст сообщения.
- Записывать логи не только в консоль, но и в файлы, сетевые сокеты и даже базы данных.
Пример простого приложения с логированием
Объяснение кода
1. Импорт модуля: Сначала импортируется модуль
2. Настройка логирования:
3. Функция: В функции
Вывод логов
После выполнения программы в консоли и в файле
🐍 Python Map | Обучение
Логирование — ключевой аспект разработки, позволяющий отслеживать состояние приложения и выявлять проблемы. В 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 | Обучение
😎5⚡1🔥1
Создаем прогресс-бар
Библиотека
— Метод add_task добавляет новую задачу в прогрессбар. Задача получает описание и общее количество шагов.
— В цикле обновляется прогресс с помощью метода update, который увеличивает значение прогресса и добавляет задержку для демонстрации работы.
Установка библиотеки:
🐍 Python Map | Обучение
Библиотека
rich
для Python предоставляет мощные инструменты для создания консольных приложений с красивым выводом. Один из её важных компонентов — модуль progress
, который позволяет удобно отображать прогресс выполнения различных задач через прогресс-бары в консольных приложениях.Прогресс-бар — это индикатор, который отображает прогресс выполнения задачи.
— Метод add_task добавляет новую задачу в прогрессбар. Задача получает описание и общее количество шагов.
— В цикле обновляется прогресс с помощью метода update, который увеличивает значение прогресса и добавляет задержку для демонстрации работы.
Установка библиотеки:
pip install rich
🐍 Python Map | Обучение
✍4⚡1🏆1
Модуль fnmatch: функция fnmatch
Функция
Синтаксис:
Где:
-
-
Примечание:
Оба параметра
🐍 Python Map | Обучение
Функция
fnmatch
из модуля fnmatch
предназначена для сравнения строки с шаблоном, используя символы подстановки. Она позволяет проверять, соответствует ли заданная строка определенному шаблону.Синтаксис:
fnmatch.fnmatch(name, pat)
Где:
-
name
: строка, которую нужно проверить.-
pat
: строка-шаблон, содержащая символы подстановки, такие как *
(любое количество символов или пустая последовательность) и ?
(ровно один любой символ).Примечание:
Оба параметра
name
и pat
нормализуются с помощью os.path.normcase()
.🐍 Python Map | Обучение
👍2🔥2⚡1
Модуль slugify
Слаг — это упрощенная версия заголовка или названия, в которой специальные символы заменяются на дефисы (-), а все буквы становятся строчными. Например, заголовок "Как создать слаг в Python!" превращается в "kak-sozdat-slag-v-python".
- Строка преобразуется в нижний регистр.
- Удаляются специальные символы и пробелы, заменяясь на дефисы.
- Результат получается коротким и удобным для чтения.
Установка библиотеки:
🐍 Python Map | Обучение
Слаг — это упрощенная версия заголовка или названия, в которой специальные символы заменяются на дефисы (-), а все буквы становятся строчными. Например, заголовок "Как создать слаг в 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()
Нормализация строк - это полноценное приведение текста к единому представлению.
Он похож на метод lower(), но более агрессивен, потому что он предназначен для удаления всех различий регистра в строке.
🐍 Python Map | Обучение
Нормализация строк - это полноценное приведение текста к единому представлению.
casefold()
— это метод строк, который преобразует все символы строки в нижний регистр, при этом учитывая особенности различных языков.Он похож на метод lower(), но более агрессивен, потому что он предназначен для удаления всех различий регистра в строке.
В первом примере sign1 - "микрознак", sign2 - "греческая строчная буква мю".
Интерпретатор Python видит эти символы как два разных, но в Unicode они имеют одинаковое отображение.
🐍 Python Map | Обучение
🔥3⚡1
Модуль collections: класс namedtuple
namedtuple — это структура данных в Python, позволяющая создавать кортежи с именованными полями. Она делает работу с данными более читабельной и удобной, позволяя обращаться к элементам как по имени, так и по индексу.
📄 Синтаксис:
Где:
⚙️ Подробнее:
Класс namedtuple создает новый подкласс кортежа с именем typename. Этот подкласс обеспечивает создание объектов, которые имеют индексируемые и итерируемые поля. Экземпляры также имеют документацию с typename и field_names, а метод repr() выводит кортеж в формате name=value.
🆚 Dict vs namedtyple:
Экземпляры именованных кортежей не имеют словарей, поэтому они легковесны и требуют не больше памяти, чем обычные кортежи.
🐍 Python Map | Обучение
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🔥2❤1
Модуль functools: декоратор lru_cache
lru_cache — это декоратор для кэширования результатов функций, использующий стратегию «Least Recently Used» (LRU). Он удаляет наименее используемые значения из кэша при достижении лимита, освобождая место для новых вызовов.
📄 Синтаксис:
Где:
⚙️ Подробнее:
Позиционные и ключевые аргументы должны быть хешируемыми, так как для кэширования используется словарь.
Специфичность типа применяется только к непосредственным аргументам функции, а не к их содержимому.
🐍 Python Map | Обучение
lru_cache — это декоратор для кэширования результатов функций, использующий стратегию «Least Recently Used» (LRU). Он удаляет наименее используемые значения из кэша при достижении лимита, освобождая место для новых вызовов.
Это экономит время и ресурсы при многократных вызовах функций с одинаковыми аргументами.
📄 Синтаксис:
@lru_cache(maxsize=128, typed=False)
def user_function():
...
Где:
maxsize
=128: максимальный размер кеша (если значение равно None
, кэш не будет ограничен);typed
=False: как кэшировать при разных типах аргументов (если установлен в True
, кэш будет различать результаты для разных типов данных).⚙️ Подробнее:
Позиционные и ключевые аргументы должны быть хешируемыми, так как для кэширования используется словарь.
Специфичность типа применяется только к непосредственным аргументам функции, а не к их содержимому.
🐍 Python Map | Обучение
🔥3❤1👍1
Модуль hupper
Hupper — это библиотека для Python, которая автоматически перезагружает приложения при изменениях в коде. Она облегчает разработку, позволяя мгновенно видеть результаты без ручного перезапуска.
Основные характеристики:
Установка библиотеки:
🗂 Документация
🐍 Python Map | Обучение
Hupper — это библиотека для Python, которая автоматически перезагружает приложения при изменениях в коде. Она облегчает разработку, позволяя мгновенно видеть результаты без ручного перезапуска.
Основные характеристики:
1. Hupper отслеживает изменения в файлах и автоматически перезапускает приложение, упрощая разработку.
2. Установка и настройка Hupper быстры и просты, позволяя сосредоточиться на программировании.
3. Библиотека совместима с различными Python-приложениями, включая веб-сервисы и скрипты.
Установка библиотеки:
pip install hupper
🗂 Документация
🐍 Python Map | Обучение
⚡3
Хранение атрибутов и методов в классах
В Python атрибуты и методы класса хранятся в специальном словаре, называемом
Кроме того, каждый экземпляр класса имеет свой собственный
🐍 Python Map | Обучение | #теория
В Python атрибуты и методы класса хранятся в специальном словаре, называемом
__dict__
. Этот словарь является атрибутом класса и позволяет хранить все его атрибуты и методы в формате пар "ключ-значение". Каждый ключ соответствует имени атрибута или метода, а значение представляет собой сам объект.Кроме того, каждый экземпляр класса имеет свой собственный
__dict__
, в котором хранятся атрибуты, специфичные для данного объекта. Это позволяет различным экземплярам одного класса иметь уникальные значения своих атрибутов, при этом общие методы и атрибуты класса остаются доступны для всех объектов.🐍 Python Map | Обучение | #теория
❤5👍1
Модуль JMESPath
JMESPath — это библиотека для Python, предназначенная для работы с JSON-данными. Она позволяет легко извлекать значения, фильтровать массивы и преобразовывать данные в нужный формат.
Основные возможности:
Установка библиотеки:
🐍 Python Map | Обучение
JMESPath — это библиотека для Python, предназначенная для работы с JSON-данными. Она позволяет легко извлекать значения, фильтровать массивы и преобразовывать данные в нужный формат.
Основные возможности:
1. Извлечение данных: Используйте выражения, похожие на SQL-запросы, для получения данных из JSON.
2. Фильтрация: Выбирайте элементы массивов по заданным условиям.
3. Преобразование данных: Подготовка данных для дальнейшего анализа.
4. Поддержка вложенных структур: Работа с сложными JSON-объектами, что полезно для API.
Установка библиотеки:
pip install jmespath
🐍 Python Map | Обучение
🔥3👍1
🐍 Цветной вывод в консоль 🎨
🖌 Сегодня мы рассмотрим как, используя управляющие последовательности ANSI, можно легко добавлять цвет и стиль в текст, выводимый в консоль.
💻 Это может улучшить читаемость и визуальное восприятие сообщений в ваших приложениях.
Разбор + код 👇
🐍 Python Map | Обучение | #статьи
🖌 Сегодня мы рассмотрим как, используя управляющие последовательности ANSI, можно легко добавлять цвет и стиль в текст, выводимый в консоль.
💻 Это может улучшить читаемость и визуальное восприятие сообщений в ваших приложениях.
Разбор + код 👇
🐍 Python Map | Обучение | #статьи
🔥3👍1
Горячие клавиши VS Code
👉 Демонстрация
🗂 Скачать полную версию
🐍 Python Map | Обучение
Очень полезная шпаргалка, в которой собран весь список горячих клавиш для VS Code.
👉 Демонстрация
🗂 Скачать полную версию
🐍 Python Map | Обучение
👍4✍1🔥1