s = 'the brown fox'
...在这里做点什么……
S应为:
'The Brown Fox'
最简单的方法是什么?
s = 'the brown fox'
...在这里做点什么……
S应为:
'The Brown Fox'
最简单的方法是什么?
当前回答
在Python中,您可以使用title()方法将字符串中的每个单词大写:
string = "this is a test string"
capitalized_string = string.title()
print(capitalized_string)
输出:
This Is A Test String
其他回答
当解决方案简单而安全的时候,为什么你要用连接和for循环来使你的生活复杂化?
只要这样做:
string = "the brown fox"
string[0].upper()+string[1:]
你可以试试这个。简单而利落。
def cap_each(string):
list_of_words = string.split(" ")
for word in list_of_words:
list_of_words[list_of_words.index(word)] = word.capitalize()
return " ".join(list_of_words)
在Python中,您可以使用title()方法将字符串中的每个单词大写:
string = "this is a test string"
capitalized_string = string.title()
print(capitalized_string)
输出:
This Is A Test String
我非常喜欢这个答案:
复制粘贴版本的@jibberia回答:
def capitalize(line):
return ' '.join([s[0].upper() + s[1:] for s in line.split(' ')])
但是我发送的一些行分离了一些空白的“字符,在尝试执行s[1:]时导致错误。可能有更好的方法,但我必须添加一个if len(s)>0,就像在
return ' '.join([s[0].upper() + s[1:] for s in line.split(' ') if len(s)>0])
大写的单词…
str = "this is string example.... wow!!!";
print "str.title() : ", str.title();
@Gary02127评论,下面的解决方案适用于带有撇号的标题
import re
def titlecase(s):
return re.sub(r"[A-Za-z]+('[A-Za-z]+)?", lambda mo: mo.group(0)[0].upper() + mo.group(0)[1:].lower(), s)
text = "He's an engineer, isn't he? SnippetBucket.com "
print(titlecase(text))