Документация по Python. Теоретические материалы, и практические задачи

Методы строк python

Методы строк python — это одни из наиболее часто используемых методов. В данной документации по методам строк, я постарался собрать все методы, их описания, и практические примеры по их применению.

Строка с заглавной буквы python

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

Пример 1. Строка с заглавной буквы

                    
string = "python is AWesome."

capitalized_string = string.capitalize()

print('Неизмененный вариант: ', string)
print('Измененный вариант:', capitalized_string)

#Результат
Неизмененный вариант: python is AWesome
Измененный вариант: Python is awesome

Как видите, данный метод работает достаточно просто:

  1. Не принимает никаких значений
  2. Возвращает строку с заглавной буквы (не изменяет исходную строку)

Вполне логичным выглядит вопрос, а что если строка начинается не с алфавитного символа? А давайте посмотрим.

Пример 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)