В Python существует несколько типов строк, каждый из которых имеет свои особенности и применение. Рассмотрим основные виды:
Стандартный строковый тип в Python 3, хранит текст в Unicode.
text = "Привет, мир!" # Unicode строка
print(type(text)) # <class 'str'>
Особенности:
Последовательность байтов (0-255), используется для бинарных данных.
raw_data = b'hello'
print(type(raw_data)) # <class 'bytes'>
Особенности:
Аналог bytes, но с возможностью изменения.
mutable_data = bytearray(b'hello')
mutable_data[0] = 72 # 'H'
print(mutable_data) # bytearray(b'Hello')
Игнорируют escape-последовательности.
path = r'C:\new_folder\file.txt'
print(path) # Выведет буквально: C:\new_folder\file.txt
Поддерживают встроенные выражения (Python 3.6+).
name = "Алексей"
print(f"Привет, {name.upper()}!") # Привет, АЛЕКСЕЙ!
Создаются с помощью тройных кавычек.
multi_line = """Первая строка
Вторая строка
Третья строка"""
# Unicode литерал (избыточен в Python 3)
u_str = u"Unicode строка"
# Байтовый литерал
b_str = b"byte string"
# Сырая байтовая строка
rb_str = rb"raw \x00byte string"
Специальные комбинации в строках:
print("Первая строка\nВторая строка") # \n - новая строка
print("Табуляция\tтекст") # \t - табуляция
print("Кавычка \" внутри") # \" - экранирование
class Person:
def __str__(self):
return "Строковое представление"
def __repr__(self):
return "Техническое представление"
p = Person()
print(str(p)) # Строковое представление
print(repr(p)) # Техническое представление
Преобразование между строками и байтами:
text = "Привет"
encoded = text.encode('utf-8') # b'\xd0\x9f\xd1\x80\xd0\xb8\xd0\xb2\xd0\xb5\xd1\x82'
decoded = encoded.decode('utf-8') # 'Привет'
Основные виды строк в Python:
Каждый тип строк имеет свои особенности и применяется в конкретных сценариях, от работы с текстом до обработки бинарных данных.