But that is liquid which is moist and wet
Fire that property can never get.
Then 'tis not cold that doth the fire put out
But 'tis the wet that makes it die, no doubt.'''
Для начала получим первые 13 символов (их смещения лежат в диапазоне от 0 до 12):
>>> poem[:13]
'All that doth'
Сколько символов содержит это стихотворение? (Пробелы и символы новой строки учитываются.)
>>> len(poem)
250
Начинается ли стихотворение с буквосочетания All?
>>> poem.startswith('All')
True
Заканчивается ли оно буквосочетанием That's all, folks!?
>>> poem.endswith('That\'s all, folks!')
False
Найдем смещение первого включения слова the:
>>> word = 'the'
>>> poem.find(word)
73
А теперь — последнего:
>>> poem.rfind(word)
214
Сколько раз встречается трехбуквенное сочетание the?
>>> poem.count(word)
3
Являются ли все символы стихотворения буквами или цифрами?
>>> poem.isalnum()
False
Нет, в стихотворении имеются еще и знаки препинания.
Регистр и выравнивание
В этом разделе мы рассмотрим еще несколько примеров использования встроенных функций. В качестве подопытной выберем следующую строку:
>>> setup = 'a duck goes into a bar…'
Удалим символ «.» с обоих концов строки:
>>> setup.strip('.')
'a duck goes into a bar'
Поскольку строки неизменяемы, ни один из этих примеров не изменяет строку setup. Каждый пример просто берет значение переменной setup, выполняет над ним некоторое действие, а затем возвращает результат как новую строку.
Напишем первое слово с большой буквы:
>>> setup.capitalize()
'A duck goes into a bar…'
Напишем все слова с большой буквы:
>>> setup.title()
'A Duck Goes Into A Bar…'
Запишем все слова большими буквами:
>>> setup.upper()
'A DUCK GOES INTO A BAR…'
Запишем все слова маленькими буквами:
>>> setup.lower()
'a duck goes into a bar…'
Сменим регистры букв:
>>> setup.swapcase()
'a DUCK GOES INTO A BAR…'
Теперь мы поработаем с функциями выравнивания. Строка выравнивается внутри заданного количества пробелов (в данном примере 30).
Отцентруем строку в промежутке из 30 пробелов:
>>> setup.center(30)
'··a duck goes into a bar…···'
Выровняем ее по левому краю:
>>> setup.ljust(30)
'a duck goes into a bar…·····'
А теперь по правому:
>>> setup.rjust(30)
'·····a duck goes into a bar…'
О форматировании и преобразовании строк мы более подробно поговорим в главе 7. Там также будет затронуто использование символа % и функции format().
Заменяем символы с помощью функции replace()
Вы можете использовать функцию replace() для того, чтобы заменить одну подстроку другой. Вы передаете в эту функцию старую подстроку, новую подстроку и количество включений старой подстроки, которое нужно заменить. Если вы опустите последний аргумент, будут заменены все включения. В этом примере совпадает с заданным значением и заменяется следующая строка:
>>> setup.replace('duck', 'marmoset')
'a marmoset goes into a bar…'
Заменим максимум 100 включений:
>>> setup.replace('a ', 'a famous ', 100)
'a famous duck goes into a famous bar…'
Если вы точно знаете, какую подстроку или подстроки хотите изменить, функция replace() станет для вас хорошим выбором. Но будьте осторожны. Во втором примере, если бы мы заменили строку из одного символа 'а', а не строку из двух символов "а " (после а идет пробел), мы бы заменили символы 'а' и в середине слов:
>>> setup.replace('a', 'a famous', 100)
'a famous duck goes into a famous ba famousr…'
Иногда вам нужно убедиться, что подстрока является целым словом, началом слова и т. д. В этих случаях понадобятся
Больше действий со строками