Это перечисленное поведение :
Возвращает копию строки с заглавными буквами первого символа, а остальных строчными буквами.
Первый символ - пробел, пробел не изменился, остальные в нижнем регистре.
Если вы хотите сделать все заглавными, см. 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'