Преобразование строки в формат заголовка в Python с помощью str.title()
Быть способным работать со строками является необходимым навыком для разработчика на Python любого уровня. Одной из самых распространённых операций, с которыми вам придётся столкнуться, является необходимость изменить регистр символов. Например, вы можете захотеть преобразовать строку в стиль заголовка, означающий, что первая буква каждого слова в строке написана с заглавной буквы.
В этом руководстве вы научитесь использовать методы str.title() и str.istitle() для преобразования строки в заголовочный регистр в Python. Это может быть чрезвычайно полезно, если вы переименовываете файлы в Python и хотите привести их имена в порядок.
К концу этого руководства вы научитесь следующему:
Как преобразовать строку в регистр заголовка в Python с помощью метода
str.title()
Как работать с проблемными строками, например, с апострофами, с помощью
str.capcase()
Как проверить, является ли строка уже регистром заголовка в Python, используя метод
str.istitle()
Оглавление
Как преобразовать строку в регистр заголовка в Python с помощью str.title()
Преобразование строки в формат с заглавной буквы каждого слова подразумевает, что первая буква каждого слова будет в верхнем регистре, а остальные буквы в нижнем регистре. Например, строка 'welcome to
bemind будет преобразована в 'Welcome To
Bemind'
. Это настолько обычная операция, что в Python есть встроенный метод для ее выполнения.
Как преобразовать строку в регистр заголовка в Python?
Чтобы преобразовать строку в заглавные буквы в Python, вы можете использовать метод str.title()
, который делает каждое слово в строке с заглавной буквы. Поскольку строки неизменяемы, старая строка уничтожается, и возвращается новая строка.
Давайте рассмотрим пример того, как вы можете использовать Python для преобразования строки в формат заголовка:
Давайте разберем, что мы сделали в предыдущем блоке кода:
Мы загрузили строку, используя переменную
text
Затем мы создали новую строку,
title
, которая является результатом применения метода.title()
к исходной строке.Наконец, мы вывели на печать наши две строки, чтобы сравнить их
Имейте в виду, что строки в Python являются неизменяемыми, то есть их нельзя модифицировать. В приведенном выше примере мы присвоили преобразованную строку новой переменной. Однако мы могли бы просто переназначить строку самой себе. Это уничтожило бы предыдущую строку и создало бы новую со строкой в виде заголовка.
Как преобразовать строку в регистр заголовка с апострофами в Python с помощью string.capwords()
string.capwords()
Метод Python str.title() определяет каждое отдельное слово как новое слово. Из-за этого метод может привести к некоторым неожиданным результатам. Например, давайте рассмотрим строку: `"Посетим bemind.gitbook.io!"
Когда мы видим, что возвращает Python, это не совсем то, что мы предполагали! Например, буква 's'
в слове Let’s написана с большой буквы. Аналогично, буква I в .io тоже написана с большой буквы.
Поскольку Python предназначен для того, чтобы быть независимым от языка, он использует базовый метод для определения новых слов. Чтобы исправить это, мы можем использовать встроенную функцию string.capwords()
. Для этого сначала нам нужно импортировать функцию:
В приведенном выше блоке кода мы импортировали функцию capwords()
из библиотеки string. Затем мы повторили наш предыдущий код, однако передали оригинальную строку в эту функцию.
Под капотом функция разделяет строку, используя заданный разделитель. Затем она преобразует первую букву каждой подстроки в заглавную и соединяет подстроки обратно вместе.
Использование регулярных выражений для оформления заголовка строки в Python
Как и в приведенном выше примере, мы можем использовать регулярные выражения для преобразования проблемной строки в верхний регистр каждого слова. Лично я предпочитаю метод выше, поскольку регулярные выражения могут быть немного сложными для чтения. Однако я хотел включить этот пример для полноты.
Согласно документации Python, мы можем написать следующую функцию для использования регулярных выражений для преобразования строки в заголовочный регистр:
В этом случае мы указали, что Python должен игнорировать символы после символа апострофа. Мы видим, что согласно приведенному выше блоку кода, это работало как задумано. Однако это также привело к тому, что символ после точки был написан с заглавной буквы.
Как было сказано, я считаю этот метод излишне сложным. Функция capwords()
из библиотеки string
значительно проще в реализации и намного легче в понимании.
Как проверить, является ли строка регистром заголовка в Python
Python также предлагает удобный метод для проверки того, написана ли строка с заглавной буквы каждого слова. Метод str.istitle()
не принимает аргументов, но возвращает булево значение. Возвращаемое значение указывает, написана ли строка с заглавных букв каждого слова или нет.
Давайте рассмотрим пример. Мы предоставим две строки: одна написана с заглавной буквы в начале каждого слова, а другая нет. Затем мы можем использовать метод .istitle()
для проверки того, написаны ли они с заглавной буквы в начале каждого слова:
Давайте разберем, что мы делаем в приведенном выше блоке кода:
Мы создали две строки, одна из которых была написана с заглавной буквы, а другая — нет.
Мы затем использовали f-строки, чтобы выводить на печать, является ли строка строкой с заглавных букв или нет, применяя метод
.istitle()
к обеим строкам.
Этот метод достаточно прост, но позволяет легко проверить состояние ваших строк или работоспособность преобразования.
Заключение
В этом уроке вы научились преобразовывать строки в стиле заголовков с использованием Python. Умение работать со строками является полезным навыком для любого разработчика на Python. Например, когда вы переименовываете файлы, вы можете захотеть применить к именам файлов стиль заголовков.
Сначала вы научились использовать метод строки .title()
для преобразования строки в версию с заглавными буквами. Затем вы научились настраивать поведение при работе с более сложными строками, такими как строки с апострофами или точками, используя функцию string.capwords()
и регулярные выражения. Наконец, вы узнали, как использовать метод istitle()
для проверки, находится ли строка уже в версии с заглавными буквами.
Дополнительные ресурсы
Чтобы узнать больше о схожих темах, ознакомьтесь с нижеприведенными учебными пособиями:
Как удалить первый или последний символ из строки Python
Строка Python содержит: проверьте, содержит ли строка подстроку
Last updated