「作者主页」:士别三日wyx
「作者简介」:CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者
「推荐专栏」:小白零基础《Python入门到精通》
capitalize
- 1、返回的是新字符串
- 2、转换规则
- 3、转换列表的元素
- 4、指定位置转换
capitalize() 可以将字符串的「首字母大写」
语法
string.capitalize()
返回值
- 返回首字母大写的「新字符串」
实例:将字符串的首字母变成大写
str1 = 'hello world'
print(str1.capitalize())
输出:
Hello world
1、返回的是新字符串
因为Python的字符串类型是「不可变」的,所以 capitalize() 不会「修改」原字符串,而是返回一个新字符串,我们打印一下转换前、后的字符串内存地址
str1 = 'hello world'
print(id(str1))
print(id(str1.capitalize()))
输出:
2282908880752
2282908885104
从结果可以发现,转换前、后的字符串「内存地址」不一样,是新创建的一个字符串。
2、转换规则
从函数的描述可以了解到, capitalize() 不只将「首字母」大写,还会把「其余字母」转成小写
内置函数只能看到描述,这里展示一下github上的「源码」
我们可以看到, capitalize() 会将首字母转成大写、后面的字母转换成小写、然后返回。
我们通过一些案例来验证一下:
print('HELLO'.capitalize())
print('hElLo'.capitalize())
print('hell0'.capitalize())
输出:
Hello
Hello
Hell0
从输出结果可以发现,各种「大小写」的组合,转换后都是一样的。
如果「首字母」不是英文字母,则全部转换为小写。
print('1hElLo'.capitalize())
print('@Hello'.capitalize())
print('\nhello'.capitalize())
输出:
1hello
@hello
hello
3、转换列表的元素
遍历列表的「每一个元素」,进行转换
arr1 = ['HELLO', 'WORLD']
for a in range(len(arr1)):
arr1[a] = arr1[a].capitalize()
print(arr1)
输出:
['Hello', 'World']
4、指定位置转换
capitalize() 默认转换整个字符串,只对字符串中的「指定位置」进行转换,可以使用以下方式
print('ABCDEFGH'[1:5].capitalize())
输出:
Bcde
从输出结果可以发现,指定位置返回了新的字符串并进行了转换。