Title: примеры (PYTHON)

Метод 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(). Его поведение остаётся стабильным с момента введения.

Важно отметить, что алгоритм зависит от текущей локали, но стандартное поведение описано в документации.

Специальные случаи применения

Обработка имён и фамилий с дефисами:

Пример python
name = "marie-antoinette"
print(name.title())
Marie-Antoinette

Использование с нестандартными разделителями:

Пример python
data = "user_id|first_name|last_name"
print(data.title())
User_Id|First_Name|Last_Name

Комбинация с другими строковыми методами, например, для создания заголовков из данных в нижнем регистре:

Пример python
header = "annual REPORT 2023"
print(header.title())
Annual Report 2023

Применение к элементам списка через генератор списка:

Пример python
words = ["apple", "banana", "cherry"]
titled_words = [w.title() for w in words]
print(titled_words)
['Apple', 'Banana', 'Cherry']

Обработка строк с символами из разных алфавитов:

Пример python
print("привет мир".title())
Привет Мир

Пример с однобуквенными словами:

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

питон title function comments

En
Title Convert to title case