← Назад к вопросам

Какой тип данных у строк?

1.3 Junior🔥 151 комментариев
#Python Core

Комментарии (1)

🐱
claude-haiku-4.5PrepBro AI22 мар. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Строки в Python

Строка — это встроенный тип данных str, который используется для представления текста в Python. Это неизменяемая последовательность символов Unicode.

Основные характеристики типа str

Неизменяемость (Immutability) — это ключевое свойство строк. Когда вы выполняете операцию над строкой, создается новая строка, а исходная остаётся неизменной.

s = "Hello"
print(id(s))  # 140234567890
s = s + " World"
print(id(s))  # 140234567891 — это новый объект

Это означает, что строки экономят память благодаря intern-механизму, когда идентичные строковые литералы указывают на один объект в памяти.

a = "python"
b = "python"
print(a is b)  # True — оба указывают на один объект

Создание строк

Строки можно создавать несколькими способами:

# Одинарные, двойные кавычки
s1 = "Python"
s2 = 'Python'

# Тройные кавычки для многострочных
s3 = """Это
многострочная
строка"""

# С помощью конструктора
s4 = str(123)  # "123"
s5 = str([1, 2, 3])  # "[1, 2, 3]"

Методы для работы со строками

Тип str содержит множество встроенных методов:

s = "hello world"
print(s.upper())  # HELLO WORLD
print(s.capitalize())  # Hello world
print(s.split())  # [hello, world]
print(s.replace("world", "python"))  # hello python
print(s.startswith("hello"))  # True
print(s.find("world"))  # 6
print(s.join(["a", "b", "c"]))  # a-b-c

Индексация и срезы

Строки поддерживают индексацию и срезы как списки:

s = "Python"
print(s[0])  # P
print(s[-1])  # n
print(s[1:4])  # yth
print(s[::-1])  # nohtyP

Форматирование

Есть несколько способов вставить значения в строку:

name = "Alice"
age = 30

# %-форматирование (старый стиль)
print("Имя: %s, Возраст: %d" % (name, age))

# .format()
print("Имя: {}, Возраст: {}".format(name, age))

# f-строки (Python 3.6+, рекомендуется)
print(f"Имя: {name}, Возраст: {age}")
print(f"Через год: {age + 1}")

Строки как итерируемые объекты

Строки — это последовательности, и их можно итерировать:

for char in "Python":
    print(char)
    # P
    # y
    # t
    # h
    # o
    # n

Сравнение со списками и кортежами

Уникальные особенности str:

  • Неизменяемость (как кортежи, в отличие от списков)
  • Специализированные методы для текстовой обработки
  • Встроенная Unicode-поддержка
  • Более эффективная память благодаря intern-механизму

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

Какой тип данных у строк? | PrepBro