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

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


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

Строки (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().
  • При работе с файлами всегда указывайте кодировку.