在Python中,将字符串中每个单词的第一个字母大写
Python中的这个函数有一个小问题,它应该返回字符串中每个单词的第一个字母大写,其他所有字母都小写:在Python中,将字符串中每个单词的第一个字母大写,python,string,Python,String,Python中的这个函数有一个小问题,它应该返回字符串中每个单词的第一个字母大写,其他所有字母都小写: def titleize(phrase): split_phrase = phrase.split() for word in split_phrase: word.capitalize() return ' '.join(split_phrase) titleize('oNLy cAPITALIZe fIRSt')->oNLy cAPITALIZ
def titleize(phrase):
split_phrase = phrase.split()
for word in split_phrase:
word.capitalize()
return ' '.join(split_phrase)
titleize('oNLy cAPITALIZe fIRSt')
->oNLy cAPITALIZe fIRSt
很明显,问题在于正在拆分的短语(我想)上的循环,我怀疑它不是在变异,而是在创建新的东西,但我一直在尝试修复它。我是否可以建议使用内置的
str.title()
函数
def titleize(phrase):
capitalize_first = phrase.title()
return capitalize_first
print(titleize('oNLy cAPITALIZe fIRSt'))
输出:
Only Capitalize First
我可以建议使用内置的
str.title()
函数吗
def titleize(phrase):
capitalize_first = phrase.title()
return capitalize_first
print(titleize('oNLy cAPITALIZe fIRSt'))
输出:
Only Capitalize First
您没有在任何地方分配结果,
split\u phrase
变量在任何时候都不会更改
您可以按照@pythonenthusiast的建议使用str.title()
,或者使用a来简化当前的方法:
def titleize(phrase):
return ' '.join([word.capitalize() for word in phrase.split()])
原始代码的更正版本可能如下所示:
def titleize(phrase):
split_phrase = phrase.split()
result = []
for word in split_phrase:
result.append(word.capitalize())
return ' '.join(result)
在这里,将创建一个新的
结果
列表,在每次迭代中,我们将更改的单词附加到列表中。最后,我们加入并返回新的结果
列表。您没有在任何地方分配结果--split_短语
变量在任何时候都不会改变
您可以按照@pythonenthusiast的建议使用str.title()
,或者使用a来简化当前的方法:
def titleize(phrase):
return ' '.join([word.capitalize() for word in phrase.split()])
原始代码的更正版本可能如下所示:
def titleize(phrase):
split_phrase = phrase.split()
result = []
for word in split_phrase:
result.append(word.capitalize())
return ' '.join(result)
在这里,将创建一个新的结果
列表,在每次迭代中,我们将更改的单词附加到列表中。最后,我们加入并返回新的结果
列表。这里的问题是,当您执行word.capitalize()
时,您没有保存它,因此仍然分割短语
没有更新,但是如何使用内置的str.title
功能请参见下文。这里的问题是,当您使用word.capitalize()
时,您没有保存它,因此仍然没有更新split_短语
,但请参见下文如何使用内置的str.title
功能