4. Работа с текстом #
Работа с текстом — одна из ключевых задач в программировании, и Python предлагает мощные инструменты для работы со строками, регулярными выражениями и кодировками.
4.1. Форматирование строк #
Стандартные способы форматирования #
Оператор
%:name = "Alice" age = 25 print("Name: %s, Age: %d" % (name, age))Метод
.format():name = "Bob" age = 30 print("Name: {}, Age: {}".format(name, age)) print("Name: {0}, Age: {1}".format(name, age)) # По индексам print("Name: {name}, Age: {age}".format(name="Charlie", age=35)) # По именамf-строки (начиная с Python 3.6):
name = "Diana" age = 28 print(f"Name: {name}, Age: {age}")
Форматирование чисел #
value = 123.4567
print(f"{value:.2f}") # 2 знака после запятой: 123.46
print(f"{value:10.2f}") # Выравнивание по правому краю: ' 123.46'
print(f"{value:.2%}") # Процент: 12345.67%
4.2. Регулярные выражения #
Регулярные выражения (regex) используются для поиска, замены и проверки шаблонов в строках. Python предоставляет модуль re для работы с ними.
Основные функции модуля re
#
re.match()— проверяет соответствие шаблону в начале строки.re.search()— ищет первое совпадение в строке.re.findall()— возвращает список всех совпадений.re.sub()— заменяет совпадения на указанный текст.
Пример использования #
import re
# Поиск совпадения
pattern = r"\d+" # Ищем числа
text = "There are 123 apples and 456 oranges."
result = re.findall(pattern, text)
print(result) # ['123', '456']
# Замена
replaced = re.sub(r"apples", "bananas", text)
print(replaced) # "There are 123 bananas and 456 oranges."
# Проверка шаблона
if re.match(r"^There", text): # Начинается с "There"
print("Pattern found!")
Шаблоны в регулярных выражениях #
\d— любая цифра.\D— любой символ, кроме цифры.\w— буква, цифра или_.\W— любой символ, кроме\w.\s— пробельный символ.\S— любой символ, кроме пробела.^— начало строки.$— конец строки..*— любое количество любых символов.
Пример сложного шаблона:
email = "example@mail.com"
pattern = r"^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$"
if re.match(pattern, email):
print("Valid email!")
4.3. Работа с Unicode и кодировками #
Unicode в Python #
Python использует Unicode для работы со строками, что позволяет обрабатывать текст на любых языках.
Пример работы с Unicode:
text = "Привет, мир!"
encoded = text.encode("utf-8") # Кодирование в байты
print(encoded) # b'\xd0\x9f\xd1\x80\xd0\xb8\xd0\xb2\xd0\xb5\xd1\x82, \xd0\xbc\xd0\xb8\xd1\x80!'
decoded = encoded.decode("utf-8") # Декодирование обратно в строку
print(decoded) # "Привет, мир!"
Проверка символов Unicode #
char = "中"
print(char.isascii()) # False (не ASCII)
print(char.isalpha()) # True (буква)
Работа с кодировками файлов #
Запись текста в файл с кодировкой:
with open("file.txt", "w", encoding="utf-8") as f: f.write("Привет, мир!")Чтение текста из файла с кодировкой:
with open("file.txt", "r", encoding="utf-8") as f: content = f.read() print(content)
Эти инструменты позволяют эффективно работать с текстами, обрабатывать строки, выполнять проверки шаблонов и учитывать разные кодировки.