python capitalize () для строки, начинающейся с пробела - PullRequest
21 голосов
/ 11 февраля 2012

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

phrase = ' Lexical Semantics'

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

Ответы [ 3 ]

45 голосов
/ 11 февраля 2012

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

Возвращает копию строки с заглавными буквами первого символа, а остальных строчными буквами.

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

Если вы хотите сделать все заглавными, см. 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'
3 голосов
/ 11 февраля 2012

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

2 голосов
/ 11 февраля 2012

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

...