Python capitalize() в строке, начинающейся с пробела

Я использовал метод capize для некоторых строк в Python, и одна из строк начинается с пробела:

phrase = ' Lexical Semantics'

phrase.capitalize() возвращает "лексическую семантику" все в нижнем регистре. Почему это?

Ответы

Ответ 1

Это приведенное поведение:

Возвращает копию строки с ее первым символом, заглавными, а остальные - нижним.

Первый символ - это пробел, пространство остается неизменным, а остальные - нижним.

Если вы хотите сделать все в верхнем регистре, см. str.upper() или str.title() для первой буквы каждого слова.

>>> phrase = 'lexical semantics'
>>> phrase.capitalize()
'Lexical semantics'
>>> phrase.upper()
'LEXICAL SEMANTICS'
>>> phrase.title()
'Lexical Semantics'

Или, если это просто проблема с пространством:

>>> phrase = ' lexical semantics'
>>> phrase.strip().capitalize()
'Lexical semantics'

Ответ 2

.capitalize() заглавный первый символ... который является пространством:) Каждый другой символ получает нижнюю область.

Ответ 3

Это потому, что первый символ - это пробел, а не буква.