字符串

  • 字符串简单操作
  • 拼接 '+'
  • 重复 '*'
  • 切片 [ ]
  • 字符串的格式化方法
  • format
  • 普通方式传参
  • 索引传参
  • 关键字传参
  • 容器类型数据传参
  • 限定小数的位数
  • 通过f' '格式化
  • 英文字符与字符检测相关函数
  • 大小写转换
  • capitalize()
  • title()
  • upper()
  • lower()
  • swapcase()
  • 字符检测方法
  • isupper()
  • islower()
  • istitle()
  • isalnm()
  • isalpha()
  • isdigit()
  • isspace()
  • startswith()
  • endswith()
  • 字符串查找与操作相关的函数(重点)
  • 字符串查找相关函数
  • in
  • len()
  • find()
  • rfind()
  • index()
  • rindex()
  • count()
  • 字符串操作相关函数
  • split()
  • join()
  • strip()
  • replace()
  • center()


字符串简单操作

拼接 ‘+’
str1 = '蛋黄的长裙, '
str2 = '蓬松的头发'
print(str1+str2)

#(输出) 蛋黄的长裙, 蓬松的头发
重复 ‘*’
varstr = '驰名双标,' * 3
print(varstr)

#(输出) 驰名双标,驰名双标,驰名双标,
切片 [ ]
  • 字符串的索引操作,只能访问,不能进行修改操作
  • 语法:[开始值 : 结束值 : 步进值]
  • 开始值:默认为0;结束值:默认最后一个字符的下标;步进值:默认为1
varstr = '长风破浪会有时,直挂云帆济沧海'

# 从头取到尾
print(varstr[::])		#(输出) 长风破浪会有时,直挂云帆济沧海

# 获取指定下标的元素
print(varstr[1])		#(输出) 风

# 从下标1开始取值, 一直到下标5之前, 左闭右开
print(varstr[1:5])		#(输出) 风破浪会

# 步进值为2
print(varstr[::2])		#(输出) 长破会时

# 步进值为负数, 反向输出
print(varstr[::-1])		#(输出) 海沧济帆云挂直,时有会浪破风长

字符串的格式化方法

format

普通方式传参
a = '卧底'
varstr = '柯南里的酒厂成员, {} {} {} {} {} {}'.format(a,a,a,'叛徒',a,a)
print(varstr)

#(输出) 柯南里的酒厂成员, 卧底 卧底 卧底 叛徒 卧底 卧底
索引传参
varstr = '名侦探柯南cp大队: 小兰cp{0}, {2}cp赤井秀一'.format('新一', '目暮警官', '宫野明美')
print(varstr)

#(输出) 名侦探柯南cp大队: 小兰cp新一, 宫野明美cp赤井秀一
关键字传参
varstr = '被誉日本警察的救世主:{a}, 女扮男装的高智商侦探:{b}'.format(a='工藤新一', b='世良真纯')
print(varstr)

#(输出) 被誉日本警察的救世主:工藤新一, 女扮男装的高智商侦探:世良真纯
容器类型数据传参
# 字典传参
data = {'a':'服部平次', 'b':'毛利小五郎'}
varstr = '关西的高中生侦探:{a}, 毛利侦探事务所一把手:{b}'.format(**data)
print(varstr)
#(输出) 关西的高中生侦探:服部平次, 毛利侦探事务所一把手:毛利小五郎

# 列表传参
varstr = '赤井秀一: {0[0]}, 水无伶奈: {0[0]}, 琴酒: {0[1]}, 伏特加: {1[1]}'.format(['卧底','劳模'], ['侦探', '司机'])
print(varstr)
#(输出) 赤井秀一: 卧底, 水无伶奈: 卧底, 琴酒: 劳模, 伏特加: 司机
限定小数的位数
varstr = '圆周率: {:.2f}'.format(3.1415926)
print(varstr)

#(输出) 圆周率: 3.14

通过f’ '格式化

  • python3.7中新增的 格式化方法 f方法(找到括号里变量对应的内容并解析)
data = {'a':'铃木园子','b':'工藤新一'}
varstr = f'小兰的闺蜜是{data["a"]}, 青梅竹马是{data["b"]}'
print(varstr)

#(输出) 小兰的闺蜜是铃木园子, 青梅竹马是工藤新一

英文字符与字符检测相关函数

大小写转换

capitalize()
  • str.capitalize() 返回原字符串的副本, 如果第一个字符是英文字符, 转成大写字符, 其余为小写
varstr = 'shopping at a mall'
res = varstr.capitalize()
print(res)
#(输出) Shopping at a mall
title()
  • str.title() 返回原字符串的副本, 把字符串中的每个单词首字母大写
varstr = 'shopping at a mall'
res = varstr.title()
print(res)
#(输出) Shopping At A Mall
upper()
  • str.upper() 把字符串中的英文字母全部转为大写
varstr = 'shopping at a mall'
res = varstr.upper()
print(res)
#(输出) SHOPPING AT A MALL
lower()
  • str.lower() 把字符串中的英文字母全部转为小写
varstr = 'SHOPPING AT A MALL'
res = res.lower()
print(res)
#(输出) shopping at a mall
swapcase()
  • str.swapcase() 把字符串里的英文字符大写转小写, 小写转大写
varstr = 'SHOPPING AT a mall'
res = varstr.swapcase()
print(res)
#(输出) shopping at A MALL

字符检测方法

isupper()
  • str.isupper() 检测当前的字符串中的英文字符是否全部由大写字符组成
varstr = 'shopping at a mall'
print(varstr.isupper())
#(输出) False
islower()
  • str.islower() 检测当前的字符串中的英文字符是否全部由小写字符组成
varstr = 'shopping at a mall'
print(varstr.islower())
#(输出) True
istitle()
  • str.istitle() 检测当前字符串中的每个英文单词是否符合首字母大写
varstr = 'Shopping At A Mall'
print(varstr.istitle())
#(输出) True
isalnm()
  • str.isalnm() 检测当前的字符串是否由字符(中文, 英文字符, 数字)组成
varstr = 'shopping at a mall'	# 字符串里有空格,所以为False
print(varstr.isalnum())
#(输出) False
isalpha()
  • str.isalpha() 检测当前的字符串是否由中英文字符组成
varstr = '我love你'
print(varstr.isalpha())
#(输出) True
isdigit()
  • str.isdigit() 检测当前的字符串是否由数字字符组成
varstr = '123456'
print(varstr.isdigit())
#(输出) True
isspace()
  • str.isspace() 检测当前的字符串是否由空格字符组成
varstr = '     '
print(varstr.isspace())
#(输出) True
startswith()
  • str.startswith() 检测一个字符串是否由指定的字符开始, 可以指定开始与结束位置, 默认从头(0)开始检测, 结束一般不写
varstr = 'shopping at a mall'
print(varstr.startswith('shop'))	#(输出) True
print(varstr.startswith('i', 5))	#(输出) True
endswith()
  • str.endswith() 检测一个字符串是否由指定的字符结尾, 可以指定开始与结束位置
varstr = 'shopping at a mall'
print(varstr.endswith('all'))			#(输出) True
# 0-8区间内的字符是否以'ing'结尾
print(varstr.endswith('ing', 0, 8))     #(输出) True

字符串查找与操作相关的函数(重点)

字符串查找相关函数

in
  • 检测一个字符串是否存在于另一个字符串中
varstr = 'Touch the air once again miss you breath'
print('is' in varstr)
#(输出) True
len()
  • 获取字符串的长度
varstr = 'Touch the air once again miss you breath'
print(len(varstr))
#(输出) 40
find()
  • str.find() 从左向右查找指定字符在字符串中第一次出现的索引位置, 未找到则返回-1, (可选)指定开始与结束位置
varstr = 'Touch the air once again miss you breath'
print(varstr.find('is', 0, 17))
#(输出) -1
rfind()
  • str.rfind() 从右向左查找指定字符在字符串中第一次出现的索引位置, 未找到则返回-1, (可选)指定开始与结束位置
varstr = 'Touch the air once again miss you breath'
print(varstr.rfind('a', 0, 17))
#(输出) 10
index()
  • str.index() 使用同find方法一样, 但没有找到则报错
varstr = 'Touch the air once again miss you breath'
print(varstr.index('is', 0, 17))
#(报错) ValueError: substring not found
rindex()
  • str.rindex() 同rfind方法一样, 没有找到则报错
count()
  • str.count() 统计一个字符串在另一个字符串中出现的次数
varstr = 'Touch the air once again miss you breath'
print(varstr.count('u'))
#(输出) 2

字符串操作相关函数

split()
  • 按照指定的字符进行分隔,把一个字符串分隔成一个列表,(可选)并可以选定分隔次数,rsplit()会从后往前开始分隔
varstr = 'uid_admin_id_123'
res = varstr.split('_')
print(res)				#(输出) ['uid', 'admin', 'id', '123']
# 分隔2次
res = varstr.split('_', 2)
print(res)				#(输出) ['uid', 'admin', 'id_123']
join()
  • str.join() 按照指定的字符, 把容器类型中的数据连接成一个字符串
arr = ['Cease', 'to', 'struggle', 'and', 'you', 'cease', 'to', 'live']
res = ' '.join(arr)
print(res)
#(输出) Cease to struggle and you cease to live
strip()
  • str.strip() 可以去除字符串左右两侧的指定字符,默认去除空白和换行
  • str.lstrip() 去除字符串左侧的指定字符
  • str.rstrip() 去除字符串右侧的指定字符
vars = '****这是一个文章的标题**'
res = vars.strip('*')
print(res)
#(输出) 这是一个文章的标题
replace()
  • str.replace() 替换, 可以指定替换次数
vars = 'i love you'
res = vars.replace('love', 'like')
print(res)
#(输出) i like you
center()
  • str.center() 使用指定字符填充至指定长度, 不写默认用空格填充
  • str.ljust() 在后边填充
  • str.rjust() 在前边填充
vars = 'love'
res = vars.center(11,'*')
print(res)
#(输出) ****love***

# str.ljust() 在后边填充
res = vars.ljust(8,'*')
print(res)
#(输出) love****

# str.rjust() 在前边填充
res = vars.rjust(8,'*')
print(res)
#(输出) ****love