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


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

phrase = ' Lexical Semantics'

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

3 19

3 ответа:

Это перечисленное поведение :

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

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

Если вы хотите, чтобы все это было в верхнем регистре, см. 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'

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

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