字符串有 下标(索引)
,从0开始,到n-1结束
-
len()
获取字符串长度s = 'Hello' len(s)
-
利用索引获取字符串中某一位
正数索引
从0开始,从左向右数负数索引
从-1开始,从右向左数s = 'Hello' print(s[0]) print(s[-1]) ====================== H o
-
切片
字符串[起始位置:[结束位置:[步长]]]
默认从左向右截取步长为正,从左向右截取
步长为负,从右向左截取
s = 'helloWorld' print(s[0:5]) # 截取从第0位到第5位 print(s[5:]) # 截取从第5位到最后 print(s[:5]) # 截取从开头到第5位 print(s[::2]) # 从开头到结尾,隔一位截取一位 print(s[::-2]) # 从结尾到开头,隔一位截取一位 ======================== hello World hello hlool drWle
-
运算符
-
+
两字符串连接print('123'+'456') ======================== 123456
-
*
重复一个字符串print('88*'*4) ======================= 88*88*88*88*
-
in
判断元素是否在字符串中,返回布尔型s = '123456' print('23' in s) print('13' in s) ======================= True False
-
is
比较两个字符串地址是否相等 内存地址相同,内容一定相同 -
==
比较两个字符串内容是否相等 内容相同,内存地址不一定相同s1 = '123456' s2 = '123456' print(id(s1)) # 查看s1内存地址 print(id(s2)) # 查看s2内存地址 print(s1 is s2) print(s1 == s2) ========================= 1711120212296 1711120212296 True True
-
[ ]
下标或切片 参阅上方:切片相关内容 -
%
格式化 参阅下方:利用占位符格式化相关内容
-
-
内置字符串方法
-
find()
从指定位置在串中对元素进行查找,找到返回索引
,没找到返回-1
字符串.find( 目标 , 起始 , 终止 )
s = 'helloWorld' print(s.find('W')) # 从0位开始,从左向右找最近的一个W print(s.find('X')) # 从0位开始,从左向右找最近的一个X print(s.find('o')) # 从0位开始,从左向右找最近的一个o print(s.find('o',5)) # 从5位开始,从左向右找最近的一个o ============================== 5 -1 4 6
-
index()
从指定位置在串中对元素进行查找,找到返回索引
,没找到则报错
字符串.index( 目标 , 起始 , 终止 )
s = 'helloWorld' print(s.index('W')) print(s.index('X')) ============================== 5 ValueError: substring not found
rfind
从右向左在指定位置在串中对元素进行查找,找到返回索引
,没找到返回-1
字符串.rfind( 目标 , 起始 , 终止 )
s = 'ohHelloWorld' print(s.rfind('o')) # 从末位开始,从左向右找最近的一个o print(s.rfind('o',0,7)) # 在0-7位中,从左向右找最近的一个o ============================== 8 6
-
-
rindex
从右向左在指定位置在串中对元素进行查找,找到返回索引
,没找到则报错
字符串.rindex( 目标 , 起始 , 终止 )
s = 'ohHelloWorld' print(s.rindex('o')) # 从末位开始,从左向右找最近的一个o print(s.rindex('o',1,6)) # 在0-7位中,从左向右找最近的一个o ============================== 8 ValueError: substring not found
-
replace
替换字符串中目标文本,默认全部替换字符串.replace( 目标文本 , 替换文本 , 替换计数)
s = '敏感词敏感词敏感词敏感词' print(s.replace('敏感词','***')) print(s.replace('敏感词','***',2)) ========================================== ************ ******敏感词敏感词
-
split
将字符串按指定分隔符进行切割,并返回一个列表字符串.split( 分隔符 ,最大拆分数 )
s = 'A*B*C*D*E*F' sp1 = s.split('*') sp2 = s.split('*',3) print(sp1) print(sp2) ========================================== ['A', 'B', 'C', 'D', 'E', 'F'] ['A', 'B', 'C', 'D*E*F']
-
大小写转换
-
upper()
转大写s = 'hello python World A' print(s.upper()) ================================ HELLO PYTHON WORLD A
-
lower()
转小写s = 'hello python World A' print(s.lower()) ================================ hello python world a
-
title()
每个单词首字母大写s = 'hello python World A' print(s.title()) ================================ Hello Python World A
-
capitalize()
仅字符串第一个单词的首字母大写,其余均变小写s = 'hello python World A' print(s.capitalize()) ================================ Hello python world a
-
-
字符串判断
-
isupper()
是否是大写s1 = 'abc' s2 = 'ABC' print(s1.isupper()) print(s2.isupper()) ================================ False True
-
islower()
是否是小写s1 = 'abc' s2 = 'ABC' print(s1.islower()) print(s2.islower()) ================================ True False
-
isalpha()
是否是纯字母s1 = 'abc8' s2 = 'ABC' print(s1.isalpha()) print(s2.isalpha()) ================================ False True
-
isdigit()
是否是纯数字s1 = '8888888' s2 = 'A888888' print(s1.isdigit()) print(s2.isdigit()) ================================ True False
-
statrtwith()
是否以指定内容开头s1 = 'A87888888' s2 = 'A88800888' print(s1.startswith('A88')) print(s2.startswith('A88')) ================================ False True
-
endswith()
是否以指定内容结尾s1 = '888888XX' s2 = '800888XA' print(s1.endswith('8XX')) print(s2.endswith('8XX')) ================================ True False
-
-
对齐相关
-
center()
居中对齐,需给出宽度 -
rjust()
右对齐,需给出宽度 -
ljust()
左对齐,需给出宽度s = '测试样例' print(s.center(15)) print(s.rjust(15)) print(s.ljust(15)) ======================== 测试样例 测试样例 测试样例
-
-
利用占位符格式化
-
%s
字符串占位符,需要匹配一个字符串,也可以是整形或浮点型 -
%d
数字占位符,需要匹配一个整形或浮点型,浮点型仅保留整数位,不四舍五入 -
%f
浮点数占位符,需要匹配一个浮点数,保留位数可调,四舍五入 -
{ }
任意占位符,可以匹配任意内容,需要与.format
配合使用可以通过指名或编号来修改顺序
可以通过格式化方式来保留小数位数 Eg. {:.2f} 小数点后保留两位
s = '****' i = 1 f = 3.536666666666 print('测试:%s' %s) print('测试:%s' %i) print('测试:%s' %f) print('测试:%i' %i) print('测试:%i' %f) print('测试:%f' %f) print('测试:%.3f' %f) print('测试:%.15f' %f) print('测试:{},{},{}'.format(s,i,f)) print('测试:{intx},{flox:.2f},{strx}'.format(strx=s,intx=i,flox=f)) ============================================= 测试:**** 测试:1 测试:3.536666666666 测试:1 测试:3 测试:3.536667 测试:3.537 测试:3.536666666666000 测试:****,1,3.536666666666 测试:1,3.54,****
-
-
去除空格
-
strip()
去除字符串两端的空格 -
rstrip()
去除字符串右端的空格 -
lstrip()
去除字符串左端的空格s = ' 123456 ' print('|'+s.strip()+'|') print('|'+s.rstrip()+'|') print('|'+s.lstrip()+'|') =================================== |123456| | 123456| |123456 |
-
-