Какие виды строк бывают в питонеpython-65

В Python существует несколько типов строк, каждый из которых имеет свои особенности и применение. Рассмотрим основные виды:

1. Основные строковые типы

1.1. str

Стандартный строковый тип в Python 3, хранит текст в Unicode.

text = "Привет, мир!"  # Unicode строка
print(type(text))      # <class 'str'>

Особенности:

  • Хранит символы Unicode (по умолчанию UTF-8)
  • Неизменяемый (immutable) тип
  • Поддерживает все строковые методы

1.2. bytes

Последовательность байтов (0-255), используется для бинарных данных.

raw_data = b'hello'
print(type(raw_data))  # <class 'bytes'>

Особенности:

  • Может содержать только ASCII символы или escape-последовательности
  • Неизменяемый тип
  • Используется для работы с бинарными протоколами, файлами

1.3. bytearray

Аналог bytes, но с возможностью изменения.

mutable_data = bytearray(b'hello')
mutable_data[0] = 72  # 'H'
print(mutable_data)    # bytearray(b'Hello')

2. Специализированные строки

2.1. raw-строки

Игнорируют escape-последовательности.

path = r'C:\new_folder\file.txt'
print(path)  # Выведет буквально: C:\new_folder\file.txt

2.2. f-строки

Поддерживают встроенные выражения (Python 3.6+).

name = "Алексей"
print(f"Привет, {name.upper()}!")  # Привет, АЛЕКСЕЙ!

2.3. Многострочные строки

Создаются с помощью тройных кавычек.

multi_line = """Первая строка
Вторая строка
Третья строка"""

3. Строковые литералы с префиксами

# Unicode литерал (избыточен в Python 3)
u_str = u"Unicode строка"

# Байтовый литерал
b_str = b"byte string"

# Сырая байтовая строка
rb_str = rb"raw \x00byte string"

4. Экранированные последовательности

Специальные комбинации в строках:

print("Первая строка\nВторая строка")  # \n - новая строка
print("Табуляция\tтекст")              # \t - табуляция
print("Кавычка \" внутри")             # \" - экранирование

5. Строковые представления

class Person:
    def __str__(self):
        return "Строковое представление"

    def __repr__(self):
        return "Техническое представление"

p = Person()
print(str(p))   # Строковое представление
print(repr(p))  # Техническое представление

6. Кодировки строк

Преобразование между строками и байтами:

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:

  1. str - Unicode строки (основной тип)
  2. bytes - неизменяемые байтовые последовательности
  3. bytearray - изменяемые байтовые последовательности
  4. raw-строки - игнорируют экранирование
  5. f-строки - с подстановкой выражений
  6. Многострочные строки - с тройными кавычками

Каждый тип строк имеет свои особенности и применяется в конкретных сценариях, от работы с текстом до обработки бинарных данных.