2012-02-11 4 views
16

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

phrase = ' Lexical Semantics' 

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

ответ

39

Это listed behaviour:

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

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

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

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

2

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