s = 'the brown fox'
...在这里做点什么……
S应为:
'The Brown Fox'
最简单的方法是什么?
s = 'the brown fox'
...在这里做点什么……
S应为:
'The Brown Fox'
最简单的方法是什么?
当前回答
对你的问题最简单的解决方法,在我的情况下是有效的:
import string
def solve(s):
return string.capwords(s,' ')
s=input()
res=solve(s)
print(res)
其他回答
正如Mark指出的,你应该使用.title():
"MyAwesomeString".title()
然而,如果你想让Django模板中的第一个字母大写,你可以这样做:
{{ "MyAwesomeString"|title }}
或者使用变量:
{{ myvar|title }}
建议的str.title()方法并非在所有情况下都有效。 例如:
string = "a b 3c"
string.title()
> "A B 3C"
而不是"A B 3c"
我认为,最好这样做:
def capitalize_words(string):
words = string.split(" ") # just change the split(" ") method
return ' '.join([word.capitalize() for word in words])
capitalize_words(string)
>'A B 3c'
如果你只想知道第一个字母:
>>> 'hello world'.capitalize()
'Hello world'
但是每个单词都要大写:
>>> 'hello world'.title()
'Hello World'
尽管所有的答案都是令人满意的,但我将尝试涵盖两个额外的情况以及所有前面的情况。
如果空间不均匀,你想保持不变
string = hello world i am here.
如果所有的字符串不是从字母开始
string = 1 w 2 r 3g
在这里你可以使用这个:
def solve(s):
a = s.split(' ')
for i in range(len(a)):
a[i]= a[i].capitalize()
return ' '.join(a)
这将给你:
output = Hello World I Am Here
output = 1 W 2 R 3g
复制粘贴版本的@jibberia回答:
def capitalize(line):
return ' '.join(s[:1].upper() + s[1:] for s in line.split(' '))