详解Python str.capitalize()和str.title()的区别

  • Post category:Python

Python中str.capitalize()和str.title()的区别

在Python中,str.capitalize() 和 str.title() 这两个方法都可以将字符串的首字母大写,但是它们的实现细节不同,下面我们详细介绍它们之间的区别。

str.capitalize()

str.capitalize() 方法用于将字符串的首字母大写,其返回值为一个新的字符串。如果字符串的首字母本来就是大写的,那么该方法不会产生任何影响。示例代码如下:

str1 = 'hello world'
str2 = str1.capitalize()
print(str2)    # 输出:'Hello world'

从上述代码可以看出, str.capitalize() 方法将字符串 “hello world” 的首字母 ‘h’ 转换成了 ‘H’,并将其余字母不变。

str.title()

str.title() 方法用于将字符串中每个单词的首字母都大写,其返回值也是一个新的字符串。不同于 str.capitalize() 方法,str.title() 方法会将字符串中每个单词的首字母都大写。示例代码如下:

str1 = 'hello world'
str2 = str1.title()
print(str2)    # 输出:'Hello World'

从上述代码可以看出,str.title() 方法将字符串 “hello world” 中的每个单词的首字母 ‘h’ 和 ‘w’ 都转换成了 ‘H’ 和 ‘W’。

示例说明

示例1

在下面的示例代码中,我们创建了一个字符串 “today is a good day”,并将它分别传递给了 str.capitalize() 和 str.title() 方法进行处理。然后我们将处理后的结果输出到控制台中。示例代码如下:

str1 = 'today is a good day'
str2 = str1.capitalize()
str3 = str1.title()
print(str2)    # 输出:'Today is a good day'
print(str3)    # 输出:'Today Is A Good Day'

从上述输出结果中可以看出,str.capitalize() 和 str.title() 对字符串 “today is a good day” 的处理结果不同:str.capitalize() 方法仅将首字母 ‘t’ 转换成了 ‘T’,而 str.title() 方法则将每个单词的首字母都转换成了大写字母。

示例2

在下面的示例代码中,我们创建了一个字符串 “hello, world!”,并将它传递给了 str.capitalize() 和 str.title() 方法进行处理。然后我们将处理后的结果输出到控制台中。示例代码如下:

str1 = 'hello, world!'
str2 = str1.capitalize()
str3 = str1.title()
print(str2)    # 输出:'Hello, world!'
print(str3)    # 输出:'Hello, World!'

从上述输出结果中可以看出,str.capitalize() 方法仅将首字母 ‘h’ 转换成了 ‘H’,而 str.title() 方法则将第一个单词的首字母 ‘h’ 转换成了 ‘H’,同时将第二个单词的首字母 ‘w’ 转换成了 ‘W’。