Основные методы и функции строк в Python

Работа с текстовыми данными — важная часть программирования. 

В Python строки являются неизменяемыми последовательностями символов, что означает, что после создания строка не может быть изменена. 

Однако, несмотря на это, у строк есть множество встроенных методов, которые позволяют эффективно манипулировать текстом. В этой лекции мы рассмотрим основные методы и функции строк.

 

Вот таблица, содержащая основные методы и функции для работы со строками в Python:

Метод/ФункцияОписаниеПримерРезультат
str.capitalize()Преобразует первую букву строки в заглавную."hello".capitalize()"Hello"
str.lower()Преобразует все символы строки в нижний регистр."HELLO".lower()"hello"
str.upper()Преобразует все символы строки в верхний регистр."hello".upper()"HELLO"
str.title()Преобразует первую букву каждого слова в заглавную."hello world".title()"Hello World"
str.swapcase()Меняет регистр всех символов на противоположный."Hello".swapcase()"hELLO"
str.strip()Удаляет пробелы (или другие символы) в начале и в конце строки." hello ".strip()"hello"
str.lstrip()Удаляет пробелы (или другие символы) в начале строки." hello ".lstrip()"hello "
str.rstrip()Удаляет пробелы (или другие символы) в конце строки." hello ".rstrip()" hello"
str.replace(a, b)Заменяет все вхождения подстроки a на подстроку b."hello world".replace("world", "Python")"hello Python"
str.split(sep)Разбивает строку на список подстрок по разделителю sep."a,b,c".split(",")['a', 'b', 'c']
str.join(seq)Объединяет элементы последовательности seq в строку с разделителем.",".join(['a', 'b', 'c'])"a,b,c"
str.find(sub)Находит первый индекс подстроки sub в строке. Возвращает -1, если подстрока не найдена."hello".find("e")1
str.index(sub)Находит первый индекс подстроки sub в строке. Вызывает ошибку, если подстрока не найдена."hello".index("e")1
str.count(sub)Возвращает количество вхождений подстроки sub в строке."hello".count("l")2
str.startswith(s)Проверяет, начинается ли строка с подстроки s."hello".startswith("he")True
str.endswith(s)Проверяет, заканчивается ли строка подстрокой s."hello".endswith("lo")True
str.isalpha()Проверяет, состоит ли строка только из букв (без пробелов и цифр)."hello".isalpha()True
str.isdigit()Проверяет, состоит ли строка только из цифр."123".isdigit()True
str.isalnum()Проверяет, состоит ли строка только из букв и цифр."hello123".isalnum()True
str.islower()Проверяет, все ли символы строки в нижнем регистре."hello".islower()True
str.isupper()Проверяет, все ли символы строки в верхнем регистре."HELLO".isupper()True
str.isspace()Проверяет, состоит ли строка только из пробельных символов." ".isspace()True
str.zfill(width)Дополняет строку нулями слева до заданной ширины."42".zfill(5)"00042"
len(str)Возвращает длину строки.len("hello")5
str.format()Форматирует строку, заменяя плейсхолдеры {} на указанные значения."{} {}".format("Hello", "World")"Hello World"

 

1. Функция len()

Функция len() не является методом строки, но она часто используется при работе со строками. Эта функция возвращает количество символов в строке.

Пример:

text = "Hello, World!"
length = len(text)
print(length)  # 13

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

2. Методы lower() и upper()

Методы lower() и upper() используются для преобразования всех символов строки в нижний или верхний регистр соответственно.

Примеры:

text = "Python Programming"

# Преобразование в нижний регистр
lower_text = text.lower()
print(lower_text)  # python programming

# Преобразование в верхний регистр
upper_text = text.upper()
print(upper_text)  # PYTHON PROGRAMMING

Эти методы особенно полезны, когда требуется сравнить строки, не учитывая регистр символов, или при нормализации текста перед его обработкой.

3. Метод replace()

Метод replace() позволяет заменить все вхождения одной подстроки на другую. Этот метод создает новую строку, в которой все вхождения заменены.

Синтаксис:

new_string = old_string.replace(old_substring, new_substring)

Пример:

text = "I like Python. Python is great!"
new_text = text.replace("Python", "Java")
print(new_text)  # I like Java. Java is great!

Метод replace() полезен для массового изменения частей строки, например, для исправления опечаток или для замены старых данных на новые.

4. Метод find()

Метод find() возвращает индекс первого вхождения подстроки в строке. Если подстрока не найдена, метод возвращает -1.

Синтаксис:

index = string.find(substring)

Пример:

text = "Hello, world!"
index = text.find("world")
print(index)  # 7

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

5. Метод split()

Метод split() разбивает строку на список подстрок по указанному разделителю. По умолчанию разделителем является пробел.

Синтаксис:

words = string.split(separator)

Пример:

text = "Python is fun"
words = text.split()
print(words)  # ['Python', 'is', 'fun']

# Использование кастомного разделителя
csv_text = "apple,orange,banana"
fruits = csv_text.split(",")
print(fruits)  # ['apple', 'orange', 'banana']

Метод split() часто используется для обработки данных, таких как разбиение строк, считанных из файла, на отдельные элементы.

6. Метод join()

Метод join() является обратным к split(). Он объединяет элементы списка в строку, используя заданный разделитель.

Синтаксис:

new_string = separator.join(list_of_strings)

Пример:

words = ['Python', 'is', 'fun']
sentence = " ".join(words)
print(sentence)  # Python is fun

Метод join() полезен для создания строк из отдельных частей, таких как создание полного предложения из отдельных слов.

7. Метод strip()

Метод strip() удаляет начальные и конечные пробелы (или другие указанные символы) из строки. Существуют также методы lstrip() и rstrip() для удаления пробелов только слева или справа.

Пример:

text = "  Hello, World!  "
clean_text = text.strip()
print(clean_text)  # Hello, World!

Метод strip() особенно полезен при обработке пользовательского ввода, когда важно удалить лишние пробелы.

8. Метод startswith() и endswith()

Методы startswith() и endswith() проверяют, начинается ли строка с определенной подстроки или заканчивается ли на нее.

Примеры:

text = "Hello, world!"

# Проверка начала строки
print(text.startswith("Hello"))  # True

# Проверка конца строки
print(text.endswith("world!"))   # True

Эти методы удобны для валидации строк, например, проверки формата данных.

9. Метод count()

Метод count() возвращает количество вхождений подстроки в строке.

Пример:

text = "banana"
count_a = text.count("a")
print(count_a)  # 3

Этот метод полезен для анализа частоты появления определенных символов или слов в тексте.

10. Методы isalpha(), isdigit(), isalnum()

Эти методы проверяют, состоит ли строка только из букв (isalpha()), цифр (isdigit()), или букв и цифр (isalnum()).

Примеры:

text = "Python3"
print(text.isalpha())  # False
print(text.isdigit())  # False
print(text.isalnum())  # True

Эти методы часто используются для валидации пользовательского ввода.

11. Метод title()

Метод title() преобразует первую букву каждого слова строки в заглавную.

Пример:

text = "python programming"
titled_text = text.title()
print(titled_text)  # Python Programming

Этот метод полезен для форматирования заголовков и названий.

12. Метод capitalize()

Метод capitalize() преобразует первый символ строки в заглавный, а остальные — в строчные.

Пример:

text = "hello, world!"
capitalized_text = text.capitalize()
print(capitalized_text)  # Hello, world!

Метод capitalize() удобен для форматирования предложений и сообщений.

Цепочки методов

В Python методы можно применять друг за другом, объединяя их в цепочки для выполнения последовательных операций над объектами. Это называется цепочкой методов (или метод-цепочкой). Такая техника позволяет выполнять несколько действий в одной строке кода, что может сделать код более компактным и выразительным.

Применение методов друг за другом

Рассмотрим строку и несколько операций, которые мы хотим над ней выполнить:

text = "  Python is FUN!  "

Допустим, мы хотим:

  1. Убрать пробелы в начале и конце строки.
  2. Привести строку к нижнему регистру.
  3. Заменить все пробелы в строке на знак подчеркивания _.

Все эти операции можно выполнить последовательно, используя метод-цепочку:

result = text.strip().lower().replace(" ", "_")
print(result)

Разбор работы кода

  1. text.strip(): Удаляет лишние пробелы в начале и конце строки. Результат: "Python is FUN!".
  2. .lower(): Приводит строку к нижнему регистру. Результат: "python is fun!".
  3. .replace(" ", "_"): Заменяет пробелы на знаки подчеркивания. Результат: "python_is_fun!".

Таким образом, весь код в результате возвращает строку "python_is_fun!".

Другие примеры цепочек методов

Пример 1: Комбинация replace() и find()

Если вы хотите заменить часть строки, начиная с определенного индекса, можно сделать это в одну строку:

text = "abracadabra"
result = text[:text.find("bra")].replace("a", "o")
print(result)  # Вывод: "obro"

Пример 2: Комбинация split(), strip() и join()

Если вам нужно разбить строку на список слов, очистить каждое слово от пробелов и объединить их обратно в строку:

text = " apple; orange ; banana "
result = ";".join(word.strip() for word in text.split(";"))
print(result)  # Вывод: "apple;orange;banana"

Почему это удобно?

  1. Читабельность: С одной стороны, такие цепочки методов делают код компактнее и выразительнее, так как вся последовательность действий видна в одной строке.
  2. Скорость написания кода: Применение нескольких методов друг за другом экономит время, ведь можно избежать создания промежуточных переменных.
  3. Понятность: Если логика действий проста и понятна, цепочки методов могут значительно упростить восприятие кода.

Однако стоит помнить, что чрезмерно длинные цепочки методов могут снизить читаемость кода, особенно если каждый метод сильно изменяет исходные данные. В таких случаях лучше разбивать цепочку на несколько строк с промежуточными переменными.

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

Перейти к следующему шагу

Комментарии