Найти в Дзене

Строки в Python: синтаксис, операции, методы и особенности

Строки (strings) — это упорядоченные последовательности символов, используемые для хранения и обработки текста. В Python они относятся к неизменяемым (immutable) типам данных, что означает невозможность модификации после создания. В этой статье разберем синтаксис строк, специальные символы, методы, форматирование и работу с Unicode. Строки можно создавать с помощью: 1. Одинарных кавычек ('...'): s1 = 'Hello, World!' 2. Двойных кавычек ("..."): s2 = "Python" 3. Тройных кавычек ('''...''' или """...""") для многострочных строк: s3 = """Это многострочная строка. Она сохраняет переносы строк и пробелы.""" Зачем разные кавычки? - Позволяют использовать одни кавычки внутри других без экранирования: text = "Он сказал: 'Привет!'" Символы, начинающиеся с обратного слеша \, используются для вставки специальных значений: - \n — перенос строки. - \t — табуляция. - \\ — обратный слеш. - \' или \" — кавычка внутри строки. - \r — возврат каретки (используется в Windows для переноса строки: \r\n). Пр
Оглавление

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

Определение и синтаксис

Строки можно создавать с помощью:

1. Одинарных кавычек ('...'):

s1 = 'Hello, World!'

2. Двойных кавычек ("..."):

s2 = "Python"

3. Тройных кавычек ('''...''' или """...""") для многострочных строк:

s3 = """Это многострочная строка.
Она сохраняет переносы строк и пробелы."""

Зачем разные кавычки?

- Позволяют использовать одни кавычки внутри других без экранирования:

text = "Он сказал: 'Привет!'"

Специальные символы (Escape-последовательности)

Символы, начинающиеся с обратного слеша \, используются для вставки специальных значений:

- \n — перенос строки.

- \t — табуляция.

- \\ — обратный слеш.

- \' или \" — кавычка внутри строки.

- \r — возврат каретки (используется в Windows для переноса строки: \r\n).

Пример:

path = "C:\\new\\folder" # C:\new\folder
message = "Первая строка\nВторая строка"

Базовые операции и методы

1. Конкатенация и повторение:

name = "Анна" + " " + "Петрова" # "Анна Петрова"
stars = "*" * 5 # "*****"

2. Проверка вхождения:

print("При" in "Привет") # True

3. Основные методы:

- Изменение регистра:

print("Python".upper()) # "PYTHON"
print("PYTHON".lower()) # "python"

- Разделение и объединение:

print("a,b,c".split(",")) # ['a', 'b', 'c']
print(", ".join(["1", "2"])) # "1, 2"

- Удаление пробелов:

print(" текст ".strip()) # "текст"

- Замена подстрок:

print("Hello World".replace("World", "Python")) # "Hello Python"

- Поиск и проверки:

print("abc123".isalnum()) # True (только буквы и цифры)
print("123".isdigit()) # True
print("start".startswith("st")) # True

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

Как и в списках, символы строк доступны по индексам:

- Индексы начинаются с 0.

- Отрицательные индексы отсчитываются с конца.

Примеры:

text = "Python"
print(text[0]) # 'P'
print(text[-1]) # 'n'
print(text[2:5]) # 'tho' (срез с 2 до 4 индекса)
print(text[::-1]) # 'nohtyP' (обратная строка)

Сырые строки (Raw Strings)

Сырые строки игнорируют экранирование. Полезны для путей, регулярных выражений:

raw_path = r"C:\new\folder" # Символы \n и \f не преобразуются
print(raw_path) # C:\new\folder

Unicode и ASCII

- ASCII — стандарт кодирования для английских символов (128 символов).

- Unicode — стандарт, поддерживающий все языки (более 140 000 символов).

В Python 3 по умолчанию используются строки Unicode. Пример:

emoji = "😊"
print(emoji) # 😊
# Преобразование в байты (ASCII/UTF-8):
byte_data = "Привет".encode("utf-8") # b'\xd0\x9f\xd1\x80\xd0\xb8\xd0\xb2\xd0\xb5\xd1\x82'
decoded_str = byte_data.decode("utf-8") # "Привет"

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

with open("file.txt", "r", encoding="utf-8") as f:
content = f.read()

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

1. f-строки (Python 3.6+):

name = "Анна"
age = 25
print(f"{name} - {age} лет") # "Анна - 25 лет"

2. Метод format():

text = "Сумма: {0:.2f}".format(10.5678) # "Сумма: 10.57"

Заключение

1. Синтаксис:

- Используйте одинарные/двойные кавычки для простых строк, тройные — для многострочных.

- Экранируйте символы через \.

2. Методы:

- split(), join(), replace(), strip() — самые часто используемые.

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

- Работают аналогично спискам.

4. Сырые строки:

- Используйте r"" для путей и регулярных выражений.

5. Unicode:

- В Python 3 все строки Unicode по умолчанию.

Советы:

- Для сложного форматирования используйте f-строки.

- Избегайте оператора + для конкатенации больших строк — лучше join().

- При работе с файлами всегда указывайте кодировку.