Title: примеры (PYTHON)
title: strФункция title в Python
Метод title() предназначен для форматирования строк. При вызове он возвращает новую строку, в которой каждое слово начинается с заглавной буквы, а все остальные символы слова становятся строчными.
Функция не принимает аргументов.
Возвращаемое значение - строка, где первые символы каждого слова преобразованы в верхний регистр, а остальные - в нижний. Под "словом" понимается последовательность буквенных символов, разделённых небуквенными символами (пробел, цифра, знак препинания).
Простые примеры использования
Базовый пример с одним словом:
print("hello".title())Hello
Пример с несколькими словами:
print("hello world example".title())Hello World Example
Пример со словами, содержащими цифры и знаки:
print("123abc test-test".title())123Abc Test-Test
Пример с уже заглавными буквами:
print("HELLO WORLD".title())Hello World
Похожие функции в Python
str.capitalize() - делает заглавной только первую букву строки, остальные приводит к нижнему регистру. Используется для форматирования одиночных предложений.
print("hello WORLD".capitalize())Hello world
str.upper() - преобразует все символы строки в верхний регистр. Подходит для создания акцентов.
str.lower() - преобразует все символы строки в нижний регистр. Применяется для нормализации данных.
str.swapcase() - меняет регистр всех символов на противоположный. Может быть полезно для специфических задач.
Выбор между title() и capitalize() зависит от задачи: для заголовков или имён подходит title(), а для начала предложения - capitalize().
Возможные ошибки и особенности
Основная особенность - функция title() может давать неожиданные результаты с аббревиатурами или словами, содержащими апострофы.
Пример с аббревиатурой:
print("what's the wifi password?".title())What'S The Wifi Password?
Пример со словом, начинающимся с цифры:
print("3d model".title())3D Model
Строка остаётся неизменной, если она пустая или не содержит букв:
print("123 456".title())123 456
Функция не модифицирует исходную строку, так как строки в Python неизменяемы.
История изменений
В Python 3.12 и более ранних версиях не было значительных изменений в работе метода str.title(). Его поведение остаётся стабильным с момента введения.
Важно отметить, что алгоритм зависит от текущей локали, но стандартное поведение описано в документации.
Специальные случаи применения
Обработка имён и фамилий с дефисами:
name = "marie-antoinette"
print(name.title())Marie-Antoinette
Использование с нестандартными разделителями:
data = "user_id|first_name|last_name"
print(data.title())User_Id|First_Name|Last_Name
Комбинация с другими строковыми методами, например, для создания заголовков из данных в нижнем регистре:
header = "annual REPORT 2023"
print(header.title())Annual Report 2023
Применение к элементам списка через генератор списка:
words = ["apple", "banana", "cherry"]
titled_words = [w.title() for w in words]
print(titled_words)['Apple', 'Banana', 'Cherry']
Обработка строк с символами из разных алфавитов:
print("привет мир".title())Привет Мир
Пример с однобуквенными словами:
print("a tale of two cities".title())A Tale Of Two Cities
Аналоги в других языках программирования
PHP: функция ucwords(). Работает аналогично, но не меняет регистр остальных букв в слове на нижний.
echo ucwords("hello world");Hello World
JavaScript: метод можно реализовать самостоятельно или использовать регулярные выражения. Стандартной функции нет.
console.log("hello world".replace(/\b\w/g, c => c.toUpperCase()));Hello World
Java: класс org.apache.commons.lang3.StringUtils содержит метод capitalize(). Стандартная библиотека не имеет прямой аналогии.
String result = WordUtils.capitalizeFully("hello world");Hello World
SQL (PostgreSQL): функция initcap().
SELECT initcap('hello world');Hello World
C#: метод TextInfo.ToTitleCase() из пространства имён System.Globalization.
string result = CultureInfo.CurrentCulture.TextInfo.ToTitleCase("hello world");Hello World
Lua: стандартной функции нет, требуется реализация.
Go: пакет strings не содержит прямой функции, но есть Title из пакета golang.org/x/text/cases.
Kotlin: функция replaceFirstChar с преобразованием.
println("hello world".replaceFirstChar { it.uppercase() }) // Только первое словоHello world