str.capitalize() 与 str.title() 的区别


在 Python 中,字符串是由双引号 (" ") 或单引号 (' ') 括起来的一系列字符。字符串用于表示 Python 中的文本数据,可以包含字母、数字和符号。

Python 中的字符串数据类型是不可变的,也就是说,一旦创建了一个字符串实例,它的值就不能更改。但是,可以创建一个新的字符串,其中包含对原始字符串所做的必要更改。

Python 字符串带有许多方法,例如 capitalize()、upper()、title()、split()、strip()、join() 等,这些方法也可用于操作字符串。

str.capitalize()

当调用 Python 方法 capitalize() 时,输入字符串会将第一个单词的第一个字母大写。作为返回,此方法给出一个字符串,该字符串的单词首字母大写,而输入字符串的其余部分保持不变。该方法将生成一个首字母大写的新字符串,但不更改原始输入字符串。

语法

str_name.capitalize()

这里,str_name 是要大写的输入字符串。capitalize() 方法不接受任何参数。

示例

str = 'hello world'
print(str.capitalize())  

输出

Hello world

如前所述,capitalize() 方法对于大写字符串中的首字母同时保持其余字母的大小写特别有用。

str.title()

Python 方法 title() 是一个字符串方法,用于将输入字符串中每个单词的第一个字符转换为大写,其余所有字符转换为小写。title() 返回一个新字符串,其中只有单词的首字母是大写的。

title() 方法能够保留原始输入字符串是一个关键特性。但它返回一个新的修改后的字符串。因此,如果需要更改原始字符串,则应将更改后的字符串分配给原始字符串。

语法

str_name.title()

这里,tr_name 是要修改的字符串。title() 方法不接受任何参数,与之前的 capitalize() 方法相同。

示例

s = 'hello world'
print(s.title())  

输出

Hello World

如上面给出的示例代码所示,字符串方法 title() 不仅将输入字符串中每个单词的首字母大写,还将所有其余字母更改为小写。

虽然 capitalize() 和 title() 方法目前都用于更改字符串,但它们之间的关键区别在于它们如何转换所述字符串。

capitalize() 和 title() 方法的区别在于,前者只更改字符串的第一个字符,而后者更新给定输入字符串中每个单词的第一个字符,如上所述。无论字符串中有多少个单词,capitalize() 方法都只会修改第一个字符。相反,title() 方法会将字符串中每个单词的首字母大写。

title() 和 capitalize() 处理非字母字符的方式是另一个区别。capitalize() 方法将字符串中的字母字符大写,并将所有其他字符转换为小写。任何存在的非字母字符都不会受到影响。但 title() 方法保留字符串中的大写字符。因此,如果字符串中已经有大小写字符,使用 title() 方法不会将它们转换为小写。

示例

为了更好地理解这种区别,让我们来看一个代码示例,其中我们对表示名称的字符串使用 title() 方法,对句子使用 capitalize() 方法。

算法

  • 用值 "john doe" 初始化字符串变量 'name'。

  • 使用 title() 方法将字符串变量 'name' 转换为标题大小写,并打印结果。

  • 使用 capitalize() 方法将 'name' 转换为首字母大写,并打印结果。

  • 用值 "this is a SENTENCE." 初始化字符串变量 'sentence'。

  • 使用 title() 方法将字符串变量 'sentence' 的值转换为标题大小写,并打印结果。

  • 使用 capitalize() 方法将 'sentence' 转换为首字母大写,并打印结果。

示例

name = "john  doe"

print(name.title())
print(name.capitalize())
 
sentence = "this is a sentence."
print(sentence.title())
print(sentence.capitalize())
 

输出

John  Doe
John  doe
This Is A Sentence.
This is a sentence.

capitalize() 与 title() 的总结

str.capitalize() str.title()
定义 将字符串的第一个字符大写,并将其余字符转换为小写。 将字符串中每个单词的第一个字符大写,并将其余字符转换为小写。
语法 str_name.capitalize() str_name.title()
返回类型 字符串 字符串

结论

因此,capitalize() 和 title() 方法在不同的情况下都有用。因此,使用哪种方法取决于具体的用例。

更新于:2023年8月10日

302 次浏览

开启你的职业生涯

完成课程获得认证

开始学习
广告