Сообщить об ошибке.

Метод title() типов bytes и bytearray в Python

Преобразовать первый байт каждого слова в верхний регистр

Синтаксис:

bytes.title()

bytearray.title()

Параметры:

  • bytes и bytearray - байтовая строка соответствующего типа bytes или bytearray.

Возвращаемое значение:

  • копия байтовой строки

Описание:

Метод title() возвращает копию байтовой строки, в которой все слова начинаются с символа ASCII в верхнем регистре, а остальные символы с нижнего регистра.

  • Символы ASCII в нижнем регистре - это байтовые значения в последовательности b'abcdefghijklmnopqrstuvwxyz'.
  • Символы в верхнем регистре ASCII - это байтовые значения в последовательности b'ABCDEFGHIJKLMNOPQRSTUVWXYZ'.
  • Все остальные значения байтов не обрабатываются.

Алгоритм использует простое независимое от языка определение слова как группы последовательных букв. Определение работает во многих контекстах, но оно означает, что апострофы в сокращениях и притяжениях образуют границы слов, что может не соответствовать желаемому результату:

>>> b"they're bill's friends from the UK".title()
# b"They'Re Bill'S Friends From The Uk"

Обходной путь для апострофов может быть создан с использованием регулярных выражений:

>>> import re
>>> def titlecase(s):
...     return re.sub(rb"[A-Za-z]+('[A-Za-z]+)?",
...                   lambda mo: mo.group(0)[0:1].upper() +
...                              mo.group(0)[1:].lower(),
...                   s)
...
>>> titlecase(b"they're bill's friends.")
# b"They're Bill's Friends."

Обратите внимание, что метод bytearray.lower() не изменяет байтовую строку bytearray, он всегда создает новый объект, даже если никаких изменений не было сделано.

  • Для того, что-бы перевести символы ASCII байтовой строки в нижний регистр используйте метод lower().
  • Для того, что-бы перевести символы ASCII байтовой строки в верхний регистр используйте метод upper().

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

>>> b'Hello world'.title()
b'Hello World'

>>> b"they're bill's friends from the UK".title()
# b"They'Re Bill'S Friends From The Uk"

>>> b"ёжик".title()
#  File "<stdin>", line 1
# SyntaxError: bytes can only contain ASCII literal characters.