Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/344.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Python中,将字符串中每个单词的第一个字母大写_Python_String - Fatal编程技术网

在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

Python中的这个函数有一个小问题,它应该返回字符串中每个单词的第一个字母大写,其他所有字母都小写:

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
功能