Методы строк python — это одни из наиболее часто используемых методов. В данной документации по методам строк, я постарался собрать все методы, их описания, и практические примеры по их применению.
Строка с заглавной буквы python
Метод capitalize() в Python, преобразует первый символ строки в заглавную букву. В случае если в строке, первый символ начинается с маленькой буквы, а где то по середине строки присутствуют заглавные буквы, то данный метод преобразует эту строку в привычный нам вариант.
Пример 1. Строка с заглавной буквы
string = "python is AWesome."
capitalized_string = string.capitalize()
print('Неизмененный вариант: ', string)
print('Измененный вариант:', capitalized_string)
#Результат
Неизмененный вариант: python is AWesome
Измененный вариант: Python is awesome
Как видите, данный метод работает достаточно просто:
- Не принимает никаких значений
- Возвращает строку с заглавной буквы (не изменяет исходную строку)
Вполне логичным выглядит вопрос, а что если строка начинается не с алфавитного символа? А давайте посмотрим.
Пример 2. Неалфавитный первый символ
string = "+ is an operator."
new_string = string.capitalize()
print('Неизменный вариант:', string)
print('Измененный вариант:', new_string)
#Результат
Неизменный вариант: + is an operator.
Измененный вариант: + is an operator.
Строка в нижнем регистре Python
Метод casefold() — приведет строку в нижний регистр. Данный метод незаменим при задачах когда необходимо провести сравнение строк. Метод casefold() — удалит просто все различия в строке. Разберем небольшой пример, связанный с немецким алфавитом. Немецкая строчная буква ß является эквивалентом ss. Теперь, поскольку ß уже находится в нижнем регистре, то в данном случае, использование например метода lower() нам ничего не даст, но метод casefold() преобразует его в ss.
Пример 1. Приведение в нижний регистр
string = "PYTHON IS AWESOME"
# print lowercase string
print("В нижнем регистре:", string.casefold())
Результат:В нижнем регистре:python is awesome
Пример 2. Сравнение строк
Теперь разберем вышеописанный пример с немецкой строчной буквой.
firstString = "der Fluß"
secondString = "der Fluss"
if firstString.casefold() == secondString.casefold():
print('Строки равны.')
else:
print('Строки не равны.')
После запуска данного скрипта, мы увидим сообщение, что строки равны, так как casefold() привел все к единому регистру.
Выравнивание строки по центру
Для выравнивания строки по центру, в python предусмотрен метод center(). На самом деле, данный метод не совсем выравнивает строку по центру, он возвращает строку, с указанным дополнительным символом, будь то просто пробел, или какой нибудь другой символ. Разберемся с данным методом немного по подробнее.
Метод center() принимает два аргумента:
- width — длина строки с учетом дополненных символов
- fillchar — необязательный аргумент, задается символ который будет являться заполнителем
Пример 1. Метод center() заполнение по умолчанию
string = "Python is awesome"
new_string = string.center(24)
print("Centered String: ", new_string)
#Результат
Centered String: Python is awesome
Пример 2. Метод center() с заполнением символом *
string = "Python is awesome"
new_string = string.center(24, '*')
print("Centered String: ", new_string)
Результат:
Centered String: ***Python is awesome****
Количество символа в строке python
Возможно в вашей практической деятельности, вы столкнетесь с задачей, где вам необходимо подсчитать, какое количество раз повторяется тот или иной символ в строке? С такой задачей, вам поможет справится метод count(). Данный метод вернет количество вхождений искомого символа.
message = 'python is popular programming language'
# ищем символ p
print('Количество вхождений p:', message.count('p'))
# Результат: Количество вхождений p: 4
Как видим, данный метод безупречно выполняет свою функцию, теперь разберем более подробно как там все устроено. Синтаксис метода count() выглядит следующим образом:
string.count(substring, start=..., end=...)
Принимаемые параметры метода count():
Метод count() имеет один обязательный параметр, это непосредственно сама подстрока, которую необходимо найти. По мимо основного аргумента, есть еще необязательные аргументы:
- substring — подстрока которую необходимо найти в строке.
- start — необязательный, задается значение, откуда начинать поиск
- stop — задается значение, где прекратить поиск
В итоге в качестве возвращаемого значения, мы получим количество вхождений искомого символа/подстроки в ткущей строке.
Пример. Считаем количество вхождений подстроки
string = "Python is awesome, isn't it?"
substring = "is"
count = string.count(substring)
print("Вхождений:", count)
Вот таким довольно простым способом, мы можем получить нужный нам результат.
Проверка окончания строки
В Python есть метод endswith(), данный метод вернет True, если строка заканчивается указанным пользователем окончанием, False если это не так.
message = 'Python is fun'
# смотрим, есть ли в предложении окончание fun
print(message.endswith('fun'))
# Результат: True
Метод endswith() принимает несколько параметров. Один обязательный, и два необязательных параметра.
- Окончание/суффикс — подстрока, которую мы ищем в окончании строки
- start — начало поиска
- stop — конец поиска
Пример. Ищем вхождение окончания в строке
text = "Python is easy to learn."
result = text.endswith('to learn')
# получаем False
print(result)
result = text.endswith('to learn.')
# получаем True
print(result)
result = text.endswith('Python is easy to learn.')
# получаем True
print(result)
Как видите в применении данного метода, нет ничего сложного.
Поиск подстроки в строке python
Для поиска подстроки в строке Python, используется специальный метод find(). Метод find() как и большинство остальных методов, работает довольно просто. Если искомый элемент найден в строке, он вернет нам индекс первого вхождения, если не найден он вернет нам -1.
Метод find() принимает три параметра, один обязательный, и два необязательных параметра:
- Подстрока — элемент который необходимо найти
- Начало — индекса начала поиска
- Стоп — Индекса конца поиска
Рассмотрим пример использования данного метода:
quote = 'Let it be, let it be, let it be'
result = quote.find('let it')
print("Substring 'let it':", result)
result = quote.find('small')
print("Substring 'small ':", result)
if (quote.find('be,') != -1):
print("Элемент существует" 'be,'")
else:
print("Элемент не существует")
- В первом примере метод find() нашел первое вхождение и вернул нам значение индекса
- Во втором случае метод find() не нашел вхождение, и соответственно вернул значение -1
- В третьем случае, мы создали условие, если подстрока существует в строке (то есть не равна -1), то верни сообщение о его существовании, в противном случае, сообщение о том, что его нет.
Индекс символа в строке Python
Метод index() возвращает индекс подстроки, внутри строки, в случае если он существует. В случае, если подстрока отсутствует, мы получаем исключение.
text = 'Python is fun'
# Поиск индекса
result = text.index('is')
print(result)
# Результат: 7
Принимаемые параметры метода index()
- Подстрока — искомый элемент в строке
- Начало и конец — начала и конец поиска str[начало:конец]
Возвращаемые значения
- В случае, если подстрока существует в строке, метод index() вернет нам индекс искомого элемента
- В случае, если подстрока отсутствует в строке, метод index() вызовет ошибку ValueError
Ниже рассмотрим сразу два небольших примера, где мы увидим, как нам возвращается индекс строки, и как мы получаем ошибку.
sentence = 'Python programming is fun.'
result = sentence.index('is fun')
print(result)
result = sentence.index('Java')
print(result)