大小写转换方法
upper()
用于将字符串中的小写字母转为大写字母。
'abcd'.upper() # 'ABCD'
'aBcD'.upper() # 'ABCD'
lower()
用于将字符串中的大写字母转为小写字母。
'ABCD'.lower() # 'abcd'
'aBcD'.lower() # 'abcd'
capitalize()
用于将字符串的第一个字母变成大写,其他字母变小写。首字符如果是非字母则不变,其他字母变小写。
'ABCD'.capitalize() # 'Abcd'
'aBcD'.capitalize() # 'Abcd'
'1abcd'.capitalize() # '1abcd'
'1aBcD'.capitalize() # '1abcd'
title()
用于返回“标题化”的字符串——即所有单词的首字母转为大写,其余字母均为小写。
- 注意:非字母后的第一个字母将转为大写字母。
'this is an example string'.title() # This Is An Example String
'5g is coming'.title() # 5G Is Coming
swapcase()
用于对字符串的大小写字母进行互相转换。
'abcd'.swapcase() # 'ABCD'
'aBcD'.swapcase() # 'AbCd'
我们来总结一下:
分割、组合与移除方法
split()
用于通过指定分隔符对字符串进行分割。split() 方法有两个可选参数,第一个参数为分隔符,默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等。第二个参数为最大分割次数,默认为 -1,即不限次数。
'扇 贝 编 程'.split() # ['扇', '贝', '编', '程']
'扇 贝 编 程'.split(' ') # ['扇', '贝', '编', '程']
'扇-贝-编-程'.split('-') # ['扇', '贝', '编', '程']
'扇贝编程'.split('贝编') # ['扇', '程']
'扇 贝 编 程'.split(' ', 1) # ['扇', '贝 编 程']
join()
用于将序列中的元素以指定的字符连接生成一个新的字符串。join() 方法接收一个序列(列表、元组、字符串等)作为参数,. 前面的字符串用于连接符。
# 列表
''.join(['扇', '贝', '编', '程']) # 扇贝编程
'-'.join(['扇', '贝', '编', '程']) # 扇-贝-编-程
# 元组
'-'.join(('扇', '贝', '编', '程')) # 扇-贝-编-程
# 字符串
'-'.join('扇贝编程') # 扇-贝-编-程
strip()
用于移除字符串开头和结尾指定的字符(默认为空字符)或字符序列。当传入一个字符串时,会将传入字符串中每个字符依次移除。
' 扇贝编程 '.strip() # '扇贝编程'
'~~扇贝编程~~'.strip('~') # '扇贝编程'
'~~扇贝~~编程~~'.strip('~') # '扇贝~~编程'
'_~_扇贝编程_~~'.strip('~_') # '扇贝编程'
定位与替换方法
count()
用于统计字符串中某个字符串出现的次数。第一个参数为要统计次数的字符串,后两个可选参数为在字符串搜索的开始与结束索引。
'aabbcccd'.count('a') # 2
'aabbcccd'.count('ab') # 1
'aabbcccd'.count('e') # 0
'aabbcccd'.count('a', 2, 6) # 0
# 等同于 'bbcc'.count('a')
'aabbcccd'.count('c', 2, 6) # 2
# 等同于 'bbcc'.count('c')
find()
用于检测字符串中是否包含子字符串,如果包含子字符串返回第一次出现的索引值,否则返回 -1。第一个参数为要查找的子字符串,后两个可选参数为在字符串搜索的开始与结束索引。
'abc'.find('b') # 1
'abcabc'.find('b') # 1
'abcabc'.find('d') # -1
'abcbcdabc'.find('bcd') # 3
'abcabc'.find('b', 1, 2) # 1
'abcabc'.find('b', 2, 3) # -1
replace()
用于将字符串中的指定字符串替换成别的字符串。第一个参数为被替换字符串,第二个参数为替换字符串,第三个可选参数为替换的最多次数,默认为无限次。
'abcd'.replace('b', 'e') # 'aecd'
'abbbcbd'.replace('b', 'e') # 'aeeeced'
'abbbcbd'.replace('bb', 'e') # 'aebcbd'
'abbbcbd'.replace('b', 'e', 2) # 'aeebcbd'
格式化输出方法
除了之前说的使用 % 运算符 进行字符串格式化输出,我们还可以使用字符串的 format() 方法达到同样的效果。
'我叫{},今年 {} 岁,来自{}'.format('小贝', 18, '南京')
# 我叫小贝,今年 18 岁,来自南京
从上面的例子可以看到,format() 方法使用 {} 作为占位符,然后按照参数顺序替换对应的占位符。
我们还可以给占位符编号:
'我叫{0},今年 {1} 岁,来自{2}'.format('小贝', 18, '南京')
# 我叫小贝,今年 18 岁,来自南京
# 调整编号顺序
'我叫{2},今年 {1} 岁,来自{0}'.format('南京', 18, '小贝')
# 我叫小贝,今年 18 岁,来自南京
# 重复编号
'我叫{0},{0}今年 {1} 岁,来自{2}'.format('小贝', 18, '南京')
# 我叫小贝,小贝今年 18 岁,来自南京
我们还可以给占位符命名:
'我叫{name},今年 {age} 岁,来自{city}'.format(name = '小贝', age = 18, city = '南京')
# 我叫小贝,今年 18 岁,来自南京
# 命名后参数顺序不再重要
'我叫{name},今年 {age} 岁,来自{city}'.format(age = 18, city = '南京', name = '小贝')
# 我叫小贝,今年 18 岁,来自南京