Работа со строками в Python

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

Основы работы со строками

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

Строки можно создавать с помощью одинарных ('), двойных (") или тройных кавычек (''' или """).

single_quote_str = 'Hello'
double_quote_str = "World"
multi_line_str = """This is a
multiline
string."""

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

Строки являются итерируемыми объектами, и каждый символ имеет свой индекс, начиная с 0. Также поддерживаются отрицательные индексы, которые начинаются с конца строки.

text = "Python"

print(text[0])   # Вывод: P
print(text[-1])  # Вывод: n

# Срезы
print(text[1:4]) # Вывод: yth
print(text[:4])  # Вывод: Pyth
print(text[2:])  # Вывод: thon
print(text[::2]) # Вывод: Pto

Методы строк

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

  • str.upper(): Преобразует все символы строки в верхний регистр.

    text = "hello"
    print(text.upper())  # Вывод: HELLO
  • str.lower(): Преобразует все символы строки в нижний регистр.

    text = "HELLO"
    print(text.lower())  # Вывод: hello
  • str.capitalize(): Преобразует первый символ строки в верхний регистр, остальные в нижний.

    text = "hello world"
    print(text.capitalize())  # Вывод: Hello world
  • str.title(): Преобразует первый символ каждого слова в верхний регистр.

    text = "hello world"
    print(text.title())  # Вывод: Hello World
  • str.swapcase(): Меняет регистр каждого символа строки.

    text = "Hello World"
    print(text.swapcase())  # Вывод: hELLO wORLD

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

  • str.strip(): Удаляет пробелы с начала и конца строки.

    text = "  hello  "
    print(text.strip())  # Вывод: hello
  • str.lstrip(): Удаляет пробелы с начала строки.

    text = "  hello"
    print(text.lstrip())  # Вывод: hello
  • str.rstrip(): Удаляет пробелы с конца строки.

    text = "hello  "
    print(text.rstrip())  # Вывод: hello

Замена и замена подстрок

  • str.replace(old, new): Заменяет все вхождения подстроки old на подстроку new.

    text = "hello world"
    print(text.replace("world", "Python"))  # Вывод: hello Python

Поиск подстрок

  • str.find(sub): Возвращает индекс первого вхождения подстроки sub, или -1, если подстрока не найдена.

    text = "hello world"
    print(text.find("world"))  # Вывод: 6
    print(text.find("Python")) # Вывод: -1
  • str.rfind(sub): Возвращает индекс последнего вхождения подстроки sub, или -1, если подстрока не найдена.

    text = "hello world world"
    print(text.rfind("world"))  # Вывод: 12
  • str.index(sub): То же, что и find(), но вызывает исключение ValueError, если подстрока не найдена.

    text = "hello world"
    print(text.index("world"))  # Вывод: 6
  • str.rindex(sub): То же, что и rfind(), но вызывает исключение ValueError, если подстрока не найдена.

    text = "hello world world"
    print(text.rindex("world"))  # Вывод: 12

Проверка содержания

  • str.startswith(prefix): Проверяет, начинается ли строка с подстроки prefix.

    text = "hello world"
    print(text.startswith("hello"))  # Вывод: True
  • str.endswith(suffix): Проверяет, заканчивается ли строка на подстроку suffix.

    text = "hello world"
    print(text.endswith("world"))  # Вывод: True
  • str.isdigit(): Проверяет, состоит ли строка только из цифр.

    text = "12345"
    print(text.isdigit())  # Вывод: True
  • str.isalpha(): Проверяет, состоит ли строка только из букв.

    text = "hello"
    print(text.isalpha())  # Вывод: True
  • str.islower(): Проверяет, состоит ли строка только из строчных букв.

    text = "hello"
    print(text.islower())  # Вывод: True
  • str.isupper(): Проверяет, состоит ли строка только из заглавных букв.

    text = "HELLO"
    print(text.isupper())  # Вывод: True

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

  • str.split(sep): Разделяет строку по разделителю sep и возвращает список подстрок.

    text = "hello world"
    print(text.split())  # Вывод: ['hello', 'world']
  • str.rsplit(sep): Разделяет строку по разделителю sep, начиная с конца, и возвращает список подстрок.

    text = "hello world world"
    print(text.rsplit(" ", 1))  # Вывод: ['hello world', 'world']
  • str.splitlines(): Разделяет строку на строки по символам перевода строки и возвращает список строк.

    text = "line1\nline2\nline3"
    print(text.splitlines())  # Вывод: ['line1', 'line2', 'line3']
  • str.join(iterable): Объединяет элементы итерируемого объекта в одну строку, используя строку в качестве разделителя.

    words = ["hello", "world"]
    print(" ".join(words))  # Вывод: hello world

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

  • Оператор %: Старый способ форматирования строк.

    name = "Alice"
    age = 30
    print("Name: %s, Age: %d" % (name, age))  # Вывод: Name: Alice, Age: 30
  • Метод format(): Более современный способ форматирования.

    print("Name: {}, Age: {}".format(name, age))  # Вывод: Name: Alice, Age: 30
  • f-строки: Форматирование строк с помощью f-строк (Python 3.6+).

    print(f"Name: {name}, Age: {age}")  # Вывод: Name: Alice, Age: 30

Экранирование символов

Строки могут содержать специальные символы, такие как символ новой строки () или табуляции (), которые можно использовать в строках.

text = "Hello\nWorld"
print(text)  # Вывод: Hello
             #         World

text = "Hello\tWorld"
print(text)  # Вывод: Hello    World

Форматирование строк для вывода

Для форматирования строк и их вывода можно использовать форматирование с f-строками, чтобы легко вставлять переменные и выражения в строку.

name = "Bob"
score = 95
print(f"{name} scored {score} points")  # Вывод: Bob scored 95 points

Заключение

Работа со строками в Python охватывает широкий спектр операций, от базовых манипуляций до сложного форматирования. Строки в Python являются мощным инструментом для обработки текстовых данных и обладают множеством встроенных методов, которые позволяют эффективно управлять текстом.

Last updated