python中字符串的各类方法

大小写转换方法

upper()

用于将字符串中的小写字母转为大写字母。

python 复制代码
'abcd'.upper()  # 'ABCD'
'aBcD'.upper()  # 'ABCD'

lower()

用于将字符串中的大写字母转为小写字母。

python 复制代码
'ABCD'.lower()  # 'abcd'
'aBcD'.lower()  # 'abcd'

capitalize()

用于将字符串的第一个字母变成大写,其他字母变小写。首字符如果是非字母则不变,其他字母变小写。

python 复制代码
'ABCD'.capitalize()  # 'Abcd'
'aBcD'.capitalize()  # 'Abcd'
'1abcd'.capitalize()  # '1abcd'
'1aBcD'.capitalize()  # '1abcd'

title()

用于返回"标题化"的字符串------即所有单词的首字母转为大写,其余字母均为小写。

注意:非字母后的第一个字母将转为大写字母。

python 复制代码
'this is an example string'.title()   # This Is An Example String
'5g is coming'.title()  # 5G Is Coming

swapcase()

用于对字符串的大小写字母进行互相转换。

python 复制代码
'abcd'.swapcase()  # 'ABCD'
'aBcD'.swapcase()  # 'AbCd'

我们来总结一下:

分割、组合与移除方法

split()_分割

用于通过指定分隔符对字符串进行分割。split() 方法有两个可选参数,第一个参数为分隔符,默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等。第二个参数为最大分割次数,默认为 -1,即不限次数。

python 复制代码
'小 贝 编 程'.split()  # ['小', '贝', '编', '程']
'小 贝 编 程'.split(' ')  # ['小', '贝', '编', '程']
'小-贝-编-程'.split('-')  # ['小', '贝', '编', '程']
'小贝编程'.split('贝编')  # ['小', '程']
'小 贝 编 程'.split(' ', 1)  # ['小', '贝 编 程']

join()_组合

用于将序列中的元素以指定的字符连接生成一个新的字符串。join() 方法接收一个序列(列表、元组、字符串等)作为参数,. 前面的字符串用于连接符。

python 复制代码
# 列表
''.join(['小', '贝', '编', '程'])  # 小贝编程
'-'.join(['小', '贝', '编', '程'])  # 小-贝-编-程

# 元组
'-'.join(('小', '贝', '编', '程'))  # 小-贝-编-程

# 字符串
'-'.join('小贝编程')  # 小-贝-编-程

strip()_移除

用于移除字符串开头和结尾指定的字符(默认为空字符)或字符序列。当传入一个字符串时,会将传入字符串中每个字符依次移除。

python 复制代码
' 小贝编程  '.strip()  # '小贝编程'
'~~小贝编程~~'.strip('~')  # '小贝编程'
'~~小贝~~编程~~'.strip('~')  # '小贝~~编程'
'_~_小贝编程_~~'.strip('~_')  # '小贝编程'

我们来总结一下:

编程练习

请你使用 split()join()strip() 方法将 带-你-打-开-编-程-世-界-的-大-门 变成 带~你~打~开~编~程~世~界~的~大~门

python 复制代码
str = '$带-你-打-开-编-程-世-界-的-大-门$'
str = str.strip('$')
str = str.split('-')
str = '~'.join(str)
print(str)

# 简化为
# 先分割、再组合、再转换
# str = '~'.join(str.split('-')).strip('$')
# print(str)

定位与替换方法

count()

用于统计字符串中某个字符串出现的次数。第一个参数为要统计次数的字符串,后两个可选参数为在字符串搜索的开始与结束索引。

python 复制代码
'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。第一个参数为要查找的子字符串,后两个可选参数为在字符串搜索的开始与结束索引。

python 复制代码
'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()

用于将字符串中的指定字符串替换成别的字符串。第一个参数为被替换字符串,第二个参数为替换字符串,第三个可选参数为替换的最多次数,默认为无限次。

python 复制代码
'abcd'.replace('b', 'e')  # 'aecd'
'abbbcbd'.replace('b', 'e')  # 'aeeeced'
'abbbcbd'.replace('bb', 'e')  # 'aebcbd'
'abbbcbd'.replace('b', 'e', 2)  # 'aeebcbd'

编程练习

请按要求对字符串进行相应的操作。

python 复制代码
str = 'feel the change'

# 输出 str 中 e 的个数
print(str)

# 输出 str 中 change 的索引值
print(str)

# 将 str 中的 change 替换为 CHANGE
print(str)

转换后为:

python 复制代码
str = 'feel the change'

# 输出 str 中 e 的个数
print(str.count('e'))

# 输出 str 中 change 的索引值
print(str.find('change'))

# 将 str 中的 change 替换为 CHANGE
print(str.replace('change','CHANGE'))

格式化输出方法

除了之前说的使用 % 运算符进行字符串格式化输出,我们还可以使用字符串的 format() 方法达到同样的效果。

python 复制代码
'我叫{},今年 {} 岁,来自{}'.format('小贝', 18, '南京')
# 我叫小贝,今年 18 岁,来自南京

从上面的例子可以看到,format() 方法使用 {} 作为占位符,然后按照参数顺序替换对应的占位符。

我们还可以给占位符编号:

python 复制代码
'我叫{0},今年 {1} 岁,来自{2}'.format('小贝', 18, '南京')
# 我叫小贝,今年 18 岁,来自南京

# 调整编号顺序
'我叫{2},今年 {1} 岁,来自{0}'.format('南京', 18, '小贝')
# 我叫小贝,今年 18 岁,来自南京

# 重复编号
'我叫{0},{0}今年 {1} 岁,来自{2}'.format('小贝', 18, '南京')
# 我叫小贝,小贝今年 18 岁,来自南京

我们还可以给占位符命名:

python 复制代码
'我叫{name},今年 {age} 岁,来自{city}'.format(name = '小贝', age = 18, city = '南京')
# 我叫小贝,今年 18 岁,来自南京

# 命名后参数顺序不再重要
'我叫{name},今年 {age} 岁,来自{city}'.format(age = 18, city = '南京', name = '小贝')
# 我叫小贝,今年 18 岁,来自南京

请你用字符串的 format() 方法改写之前天气播报的代码。

python 复制代码
weathers = [
  ('南京', 36),
  ('成都', 30),
  ('昆明', 26)
]

for w in weathers:
  print('今天%s的最高气温是%d度' % (w[0], w[1]))

改写后的结果为:

python 复制代码
weathers = [
  ('南京', 36),
  ('成都', 30),
  ('昆明', 26)
]

for w in weathers:
  print('今天{}的最高气温是{}度'.format(w[0],w[1]))

# 输出为:
# 今天南京的最高气温是36度
# 今天成都的最高气温是30度
# 今天昆明的最高气温是26度
相关推荐
一点媛艺2 小时前
Kotlin函数由易到难
开发语言·python·kotlin
姑苏风2 小时前
《Kotlin实战》-附录
android·开发语言·kotlin
奋斗的小花生3 小时前
c++ 多态性
开发语言·c++
魔道不误砍柴功3 小时前
Java 中如何巧妙应用 Function 让方法复用性更强
java·开发语言·python
闲晨3 小时前
C++ 继承:代码传承的魔法棒,开启奇幻编程之旅
java·c语言·开发语言·c++·经验分享
_.Switch3 小时前
高级Python自动化运维:容器安全与网络策略的深度解析
运维·网络·python·安全·自动化·devops
老猿讲编程3 小时前
一个例子来说明Ada语言的实时性支持
开发语言·ada
Chrikk4 小时前
Go-性能调优实战案例
开发语言·后端·golang
幼儿园老大*4 小时前
Go的环境搭建以及GoLand安装教程
开发语言·经验分享·后端·golang·go
canyuemanyue4 小时前
go语言连续监控事件并回调处理
开发语言·后端·golang