Строковые методы в Python — это встроенные функции, которые можно применять к строкам для выполнения различных операций, таких как изменение регистра, поиск подстрок, удаление пробелов, разбиение строки на части и многое другое. Они предоставляют мощные инструменты для работы с текстом. Важно отметить, что строковые методы Не изменяют исходную строку, а возвращают Новую строку с внесенными изменениями (строки в Python неизменяемы).
Вот наиболее часто используемые строковые методы в Python:
1. Основные методы:
Len(string): Возвращает длину строки (количество символов). Это не метод строки, а встроенная функция Python, но она часто используется при работе со строками.
· text = "Hello"
· length = len(text)
· print(length) # Output: 5
String. lower(): Возвращает новую строку, в которой все символы приведены к нижнему регистру.
· text = "Hello World"
· lower_text = text. lower()
· print(lower_text) # Output: hello world
String. upper(): Возвращает новую строку, в которой все символы приведены к верхнему регистру.
· text = "Hello World"
· upper_text = text. upper()
· print(upper_text) # Output: HELLO WORLD
String. capitalize(): Возвращает новую строку, в которой первый символ приведен к верхнему регистру, а остальные — к нижнему.
· text = "hello world"
· capitalized_text = text. capitalize()
· print(capitalized_text) # Output: Hello world
String. title(): Возвращает новую строку, в которой каждое слово начинается с заглавной буквы.
· text = "hello world"
· titled_text = text. title()
· print(titled_text) # Output: Hello World
String. strip(): Возвращает новую строку, в которой удалены все начальные и конечные пробельные символы (пробелы, табуляции, переносы строк).
· text = " Hello World \n"
· stripped_text = text. strip()
· print(stripped_text) # Output: Hello World
String. lstrip(): Возвращает новую строку, в которой удалены все начальные пробельные символы.
· text = " Hello World"
· lstripped_text = text. lstrip()
· print(lstripped_text) # Output: Hello World
String. rstrip(): Возвращает новую строку, в которой удалены все конечные пробельные символы.
· text = "Hello World "
· rstripped_text = text. rstrip()
· print(rstripped_text) # Output: Hello World
2. Методы поиска и замены:
String. find(substring, start, end): Возвращает индекс первого вхождения подстроки substring в строку string. Если подстрока не найдена, возвращает -1. start и end (необязательные аргументы) задают диапазон поиска.
· text = "Hello World"
· index = text. find("World")
· print(index) # Output: 6
·
· index = text. find("Python")
· print(index) # Output: -1
String. rfind(substring, start, end): Возвращает индекс последнего вхождения подстроки substring в строку string. Если подстрока не найдена, возвращает -1.
· text = "Hello World World"
· index = text. rfind("World")
· print(index) # Output: 12
String. index(substring, start, end): Подобен find(), но если подстрока не найдена, выбрасывает исключение ValueError.
· text = "Hello World"
· try:
· index = text. index("World")
· print(index)
· index = text. index("Python")
· print(index)
· except ValueError:
· print("Подстрока не найдена")
String. rindex(substring, start, end): Подобен rfind(), но если подстрока не найдена, выбрасывает исключение ValueError. String. startswith(prefix, start, end): Возвращает True, если строка начинается с указанного префикса prefix, и False в противном случае.
· text = "Hello World"
· starts_with_hello = text. startswith("Hello")
· print(starts_with_hello) # Output: True
·
· starts_with_world = text. startswith("World")
· print(starts_with_world) # Output: False
String. endswith(suffix, start, end): Возвращает True, если строка заканчивается указанным суффиксом suffix, и False в противном случае.
· text = "Hello World"
· ends_with_world = text. endswith("World")
· print(ends_with_world) # Output: True
·
· ends_with_hello = text. endswith("Hello")
· print(ends_with_hello) # Output: False
String. replace(old, new, count): Возвращает новую строку, в которой все вхождения подстроки old заменены на подстроку new. count (необязательный аргумент) задает максимальное количество замен.
· text = "Hello World World"
· replaced_text = text. replace("World", "Python")
· print(replaced_text) # Output: Hello Python Python
·
· replaced_text = text. replace("World", "Python", 1) # Заменяем Только Первое Вхождение
· print(replaced_text) # Output: Hello Python World
3. Методы проверки:
String. isalpha(): Возвращает True, если строка состоит только из букв (алфавитных символов), и False в противном случае.
· text = "HelloWorld"
· is_alpha = text. isalpha()
· print(is_alpha) # Output: True
·
· text = "Hello World"
· is_alpha = text. isalpha()
· print(is_alpha) # Output: False (Содержит Пробел)
·
· text = "HelloWorld123"
· is_alpha = text. isalpha()
· print(is_alpha) # Output: False (Содержит Цифры)
String. isdigit(): Возвращает True, если строка состоит только из цифр, и False в противном случае.
· text = "12345"
· is_digit = text. isdigit()
· print(is_digit) # Output: True
·
· text = "123.45"
· is_digit = text. isdigit()
· print(is_digit) # Output: False (Содержит Точку)
String. isalnum(): Возвращает True, если строка состоит только из букв и цифр, и False в противном случае.
· text = "HelloWorld123"
· is_alnum = text. isalnum()
· print(is_alnum) # Output: True
·
· text = "Hello World 123"
· is_alnum = text. isalnum()
· print(is_alnum) # Output: False (Содержит Пробелы)
String. isspace(): Возвращает True, если строка состоит только из пробельных символов (пробелов, табуляций, переносов строк), и False в противном случае.
· text = " \t\n"
· is_space = text. isspace()
· print(is_space) # Output: True
·
· text = " Hello "
· is_space = text. isspace()
· print(is_space) # Output: False
String. islower(): Возвращает True, если все буквы в строке находятся в нижнем регистре, и False в противном случае.
· text = "hello world"
· is_lower = text. islower()
· print(is_lower) # Output: True
·
· text = "Hello world"
· is_lower = text. islower()
· print(is_lower) # Output: False
·
· text = "123"
· is_lower = text. islower()
· print(is_lower) # Output: False (Нет Букв)
·
· text = ""
· is_lower = text. islower()
· print(is_lower) # Output: False (Пустая Строка)
String. isupper(): Возвращает True, если все буквы в строке находятся в верхнем регистре, и False в противном случае.
· text = "HELLO WORLD"
· is_upper = text. isupper()
· print(is_upper) # Output: True
·
· text = "Hello World"
· is_upper = text. isupper()
· print(is_upper) # Output: False
·
· text = "123"
· is_upper = text. isupper()
· print(is_upper) # Output: False (Нет Букв)
·
· text = ""
· is_upper = text. isupper()
· print(is_upper) # Output: False (Пустая Строка)
String. istitle(): Возвращает True, если строка находится в формате Title Case (каждое слово начинается с заглавной буквы), и False в противном случае.
· text = "Hello World"
· is_title = text. istitle()
· print(is_title) # Output: True
·
· text = "hello world"
· is_title = text. istitle()
· print(is_title) # Output: False
·
· text = "Hello world"
· is_title = text. istitle() #Output: False
·
· text = "123"
· is_title = text. istitle() # Output: False
·
· text = ""
· is_title = text. istitle() #Output: False
4. Методы разделения и объединения:
String. split(separator, maxsplit): Разбивает строку на список подстрок, используя указанный разделитель separator. Если разделитель не указан, используются пробельные символы. maxsplit (необязательный аргумент) задает максимальное количество разбиений.
· text = "Hello World Python"
· words = text. split() # Разделяем по пробелам
· print(words) # Output: [‘Hello’, ‘World’, ‘Python’]
·
· text = "Hello, World, Python"
· words = text. split(",") # Разделяем по запятым
· print(words) # Output: [‘Hello’, ‘World’, ‘Python’]
·
· text = "Hello World Python"
· words = text. split(" ", 1) # Разделяем по пробелам, делаем только 1 разбиение
· print(words) # Output: [‘Hello’, ‘World Python’]
String. rsplit(separator, maxsplit): Работает как split(), но разбиение начинается с правой стороны строки. String. splitlines(keepends): Разбивает строку на список строк по символам новой строки. keepends (необязательный аргумент) указывает, нужно ли сохранять символы новой строки в результирующих строках.
· text = "Hello\nWorld\nPython"
· lines = text. splitlines()
· print(lines) # Output: [‘Hello’, ‘World’, ‘Python’]
·
· lines = text. splitlines(keepends=True)
· print(lines) # Output: [‘Hello\n’, ‘World\n’, ‘Python’]
Separator. join(iterable): Объединяет элементы итерируемого объекта (например, списка) в одну строку, используя строку separator в качестве разделителя.
· words = [‘Hello’, ‘World’, ‘Python’]
· text = " ".join(words) # Объединяем с пробелами
· print(text) # Output: Hello World Python
·
· text = ", ".join(words) # Объединяем с запятыми и пробелами
· print(text) # Output: Hello, World, Python
5. Методы форматирования:
String. center(width, fillchar): Возвращает новую строку, в которой исходная строка выровнена по центру в поле указанной ширины width. fillchar (необязательный аргумент) задает символ заполнения (по умолчанию — пробел).
· text = "Hello"
· centered_text = text. center(10)
· print(centered_text) # Output: Hello
· centered_text = text. center(10, "*")
· print(centered_text) # Output: **Hello***
String. ljust(width, fillchar): Возвращает новую строку, в которой исходная строка выровнена по левому краю в поле указанной ширины width. fillchar (необязательный аргумент) задает символ заполнения (по умолчанию — пробел). String. rjust(width, fillchar): Возвращает новую строку, в которой исходная строка выровнена по правому краю в поле указанной ширины width. fillchar (необязательный аргумент) задает символ заполнения (по умолчанию — пробел). String. zfill(width): Дополняет строку нулями слева до указанной ширины width.
· number = "123"
· zfilled_number = number. zfill(5)
· print(zfilled_number) # Output: 00123
6. Методы кодирования:
String. encode(encoding=’utf-8′, errors=’strict’): Кодирует строку в последовательность байтов, используя указанную кодировку. Bytes. decode(encoding=’utf-8′, errors=’strict’): Декодирует последовательность байтов в строку, используя указанную кодировку.
7. Другие полезные методы:
String. count(substring, start, end): Возвращает количество вхождений подстроки substring в строку string. String. partition(separator): Разделяет строку на три части по первому вхождению разделителя separator и возвращает кортеж из трех элементов: часть до разделителя, сам разделитель и часть после разделителя. Если разделитель не найден, возвращает кортеж, где первый элемент — вся строка, а остальные два — пустые строки. String. rpartition(separator): Работает как partition(), но разделение происходит по последнему вхождению разделителя. String. expandtabs(tabsize=8): Заменяет символы табуляции в строке на пробелы, увеличивая длину строки до следующего кратного tabsize.
Примеры использования:
Text = " Hello, World! "
# Удаление пробелов и приведение к нижнему регистру
Cleaned_text = text. strip().lower()
Print(cleaned_text) # Output: hello, world!
# Разделение на слова
Words = cleaned_text. split(",")
Print(words) # Output: [‘hello’, ‘ world!’]
# Проверка, начинается ли строка с "hello"
Starts_with_hello = cleaned_text. startswith("hello")
Print(starts_with_hello) # Output: True
# Замена "world" На "Python"
New_text = cleaned_text. replace("world", "Python")
Print(new_text) # Output: hello, Python!
# Проверка, состоит ли строка только из букв и цифр
Is_alnum = new_text. isalnum()
Print(is_alnum) #Output: False
#Объединение элементов списка
Words = [‘hello’,’world’]
Text = " ".join(words)
Print(text) #Output: hello world
Эти строковые методы предоставляют широкий набор инструментов для эффективной работы с текстом в Python. Их комбинирование позволяет решать различные задачи по обработке и анализу строк. Помните, что строки в Python являются неизменяемыми, поэтому большинство строковых методов возвращают новые строки, а не изменяют исходные.