day03 字符串的常用方法:索引切片,转大小写,替换,分割,联合,for循环
-
字符串索引切片
-
通过下标(索引)取字符串的单个字符,得到的是字符串。
-
下标为正,从左到右,起始下标为0,格式:str[index]
a ='小智Python全栈工程师' print(a[1]) #输出智
-
下标为负,从右到左,起始下标为-1
a ='小智Python全栈工程师' print(a[-2]) #输出程
-
-
通过字符串切片得到一段字符串
-
下标为正,从左到右,起始下标为0,顾首不顾腚,格式:str[start_index:end_index+1]
a ='小智Python全栈工程师' print(a[:2]) #其实下标0可以不写,得到小智
-
切片加步长,步长定义:起始字符下面的第几个或者理解为间隔,格式:str[start_index:end_index+1:step],因为步长为正,所以从左往右,起始下标要小于结束下标
a ='小智Python全栈工程师' print(a[:8:2]) #其实下标0可以不写,得到小Pto
-
步长为负,倒序切片,格式:str[start_index:end_index:-step],因为步长为负,所以从右往左,起始下标大于结束下标
a ='小智Python全栈工程师' print(a[::-1]) #师程工栈全nohtyP智小
-
-
转化为大小写
- str.upper(),转化为大写:将字符串内所有英文字母转为大写,非英文字符不变,得到新字符串,原字符串不变
s = 'hello world 小智 cool' print(s.upper()) #HELLO WORLD 小智 COOL print(s) #hello world 小智 cool
- str.lower(),转化为小写:将字符串内所有英文字母转为小写,非英文字符不变,得到新字符串,原字符串不变
s = 'HELLO WORLD 小智 COOL' print(s.lower()) #hello world 小智 cool print(s) #HELLO WORLD 小智 COOL
-
判断以xx开头或xx结尾
-
str.startswith('xx'):判断str是否以‘xx’开头,返回的是布尔值
s = 'HELLO WORLD 小智 COOL' print(s.startswith('HE')) #True print(s)
-
str.endswith('xx'):判断str是否以‘xx’结尾,返回是布尔值
s = 'HELLO WORLD 小智 COOL' print(s.endswith('小智')) #False print(s)
- str.startswith('xx',start_index,end_index):判断str的切片是否以‘xx'开头
s = 'HELLO WORLD 小智 COOL' print(s.startswith('小智',12,)) #切片得到小智 COOL,是否以’小智‘开头,返回True print(s)
-
-
替换:str.replace(old,new,【times】):将字符串中的old字符串替换成new字符串,默认全部替换,也可指定替换多少次,得到新字符串,原字符串不变
s = 'HELLO WORLD 小智 COOL 小智 啊 小智 噢 小智' print(s.replace('小智','xiaozhi',3)) #HELLO WORLD xiaozhi COOL xiaozhi 啊 xiaozhi 噢 小智 print(s)
-
去除字符串两边的空格:str.strip([str1]),从左往右以及从右往左去除指定单个或多个字符,遇到非str1的字符停止
s = '1234HELLO WORLD 1234小智 COOL 小智 啊 小智 噢 小智12345' *print(s.strip('12345')) #HELLO WORLD 1234小智 COOL 小智 啊 小智 噢 小智 print(s) #1234HELLO WORLD 1234小智 COOL 小智 啊 小智 噢 小智12345
-
-
分割,str.split([x'],[times]):默认遇到空格分割字符串,可指定字符串,和指定次数,返回一个列表
s = '小智123臭臭猪123美美猪' print(s.split('123',1)) #['小智', '臭臭猪123美美猪'] print(s) #小智123臭臭猪123美美猪
-
联合, 'x'.join(str/list) : 将字符串内的每一个字符或列表内的每一个元素用x拼接,得到一个字符串,注意列表内全是字符串元素
s = '小智123臭臭猪123美美猪' s1 = ['xiaozhi','123','hello'] print('xx'.join(s)) #小xx智xx1xx2xx3xx臭xx臭xx猪xx1xx2xx3xx美xx美xx猪 print('++'.join(s1)) #xiaozhi++123++hello print(s)
-
计算字符串内子串出现的次数:str.count('xx')
s = 'pythonasd pythonsadzklxnlcpythonasjkkjczxjlcapython' print(s.count('python')) #4
-
格式化输出:str.format
- 第一种:和%s格式化输出一样
print('我叫{},今年{}岁'.format('小智','20')) #format里数据的顺序和字符串内{}顺序一致
-
第二种:'xxxx{index}'.format(tuple)
print('我叫{0},今年{3}岁'.format('小智','20','100','美美猪'))
-
第三种:’xxxxx{变量名1}xxxx{变量名2}'.format(变量名1=值1,变量名2=值2,变量名3=值三)
print('我叫{age},今年{name1}岁'.format(name='小智',age='20',age1='100',name1='美美猪')) #我叫20,今年美美猪岁
-
is系列
-
判断是否只由字母组成:str.isalpha(),返回布尔值
a = 'helloworld2020' print(a.isalpha()) #False
-
判断字符串是否由数字或字母或数字和字母组成
a = 'helloworld2020' print(a.isalnum()) #True
-
判断字符串是否只由十进制数组成
a = 'helloworld2020' print(a.isdecimal()) #False
-
-
For循环
-
格式:for 变量 in 可迭代对象:循环体 #可迭代对象:由多个元素组成
-
原理,从第零个元素开始,每次迭代,变量为可迭代对象的一个元素,直到最后一个元素为止
s = 'hello world' for i in s : print(i) #每次打印字符串的一个元素
-