字符串
一、字符串(str)
字符串的方法:
1,find通过元素找索引,可切片,找不到返回-1
2,index,找不到报错。
3,split 由字符串分割成列表,默认按空格。
4,captalize 首字母大写,其他字母小写。
5,upper 全大写。
6,lower 全小写。
7,title,每个单词的首字母大写。
8,startswith 判断以什么为开头,可以切片,整体概念。
9,endswith 判断以什么为结尾,可以切片,整体概念。
10,format格式化输出
{}{}{}.format(有顺序)
{0}{1}{2}{0}.format(有顺序的)
'{name} {age}'.format(name=李复,age=12)
11,strip 默认去掉两侧空格,有条件,
12,lstrip,rstrip
14,center 居中,默认空格。
15,count查找元素的个数,可以切片,若没有返回0
16,expandtabs 将一个tab键变成8个空格,如果tab前面的字符长度不足8个,则补全8个,
17,replace(old,new,次数)
18,isdigit 字符串由字母或数字组成
isalpha, 字符串只由字母组成
isalnum 字符串只由数字组成
19,swapcase 大小写翻转
20,for i in 可迭代对象。
1、索引和切片[ 起始位置 : 结束位置 : 步长]
#索引从0开始 [ 索引 (下标,index)]
s1 = 'python全栈8期' print(s1[0]) print(s1[3]) print(s1[5]) print(s1[6])
输出
p
h
n
全
#切片 顾头不顾尾(超长不报错)
s1 = 'python全栈8期'
print(s1[0:6])
print(s1[6:20])
print(s1[6:])
输出
python
全栈8期
全栈8期
#倒取值:加步长
s1 = 'python全栈8期' print(s1[3:0:-1]) print(s1[3:-1]) print(s1[5:0:-2]) 输出 hty hon全栈8 nhy
a = 'ABCDEFGHIJK' print(a[0:3]) print(a[2:5]) print(a[0:]) #默认到最后 print(a[0:-1]) #-1就是最后一个 print(a[0:5:2]) #加步长 print(a[5:0:-2]) #反向加步长 输出 ABC CDE ABCDEFGHIJK ABCDEFGHIJ ACE FDB
#字符串的使用方法
#capitalize 首字母大写,其他的全小写
ret = 'alexS' ret1 = ret.capitalize() print(ret,ret1) 输出 alexS Alexs
#*全大写 upper,全小写 lower
ret = 'alexS' ret2 = ret.upper() ret3 = ret.lower() print(ret2,ret3)
输出:
ALEXS alexs
demo
#输入验证码,不区分大小写(使条件大写,)
code = 'axED' your_code = input('请输入验证码,不区分大小写') if your_code.upper() == code.upper(): print('ok') else: print('请重新输入')
code = 'axED'.upper() your_code = input('请输入验证码,不区分大小写').upper() if your_code == code: print('ok') else: print('请重新输入')
#大小写翻转 swapcase
ret = 'alexS' ret4 = ret.swapcase() print(ret4) 输出 ALEXs
#每一个字符串首字母大写 title()
ret5 = 'xu lili+shi' print(ret5.title()) 输出 Xu Lili+Shi
#居中
center:以一串长度的宽度返回S。填充 使用指定的填充字符(默认为空格)
ret = 'alexS' print(ret.center(20)) print(ret.center(20,'*')) 输出 alexS *******alexS********
#startswith 判断是否以...开头 #endswith 判断是否以...结尾
返回的是bool值
ret = 'alexS' ret6 = ret.startswith('a') ret7 = ret.startswith('ale') ret8 = ret.startswith('alexS') ret9 = ret.startswith('l',1,3) # 切片 顾头不顾尾 ret10 = ret.endswith('xS') print(ret6,ret7,ret8,ret9,ret10) 输出 True True True True True
#数字符串中的元素出现的个数。
ret = 'alexS,aeaeQ' ret3 = ret.count("a",0,8) # 可切片 print(ret3)
输出
2
#\t前面的补全
# 默认将一个tab键变成8个空格,如果tab前面的字符长度不足8个,则补全8个,
#补充空格 expandtabs(默认是8位,超过8位则是16位,以此类推加8)
#需加\t,\t前面的补全
str = 'lishi\t'
str1 = str.expandtabs()
print(str1)
a2 = "liiiiiiiiiii\tii" ret4 = a2.expandtabs() print(ret4) 输出 liiiiiiiiiii ii
# 通过下标找元素
# * find 通过元素找到索引(找到第一个元素),找不到返回 -1
#* index返回的找到的元素的索引,找不到报错
ret = 'alexS' ret9 = ret.find('W',0,5) print(ret9) 输出 -1
ret10 = ret.index("fjdk",4,6)
print(ret10)
输出:报错
#***strip 去除字符串前后的空格
name = 'alex' username = input('请输入用户名').strip() if username == name: print('ok')
ret = ' LiLi ' ret1 =ret.strip() print(ret1) ret11 = ret.rstrip() print(ret11) ret111 = ret.lstrip() print(ret111)
输出:
LiLi
LiLi
LiLi
及你想要去除的东西
ret12 = 'aqazwsxa'.strip('a')
print(ret12.strip('aq'))#zwsx print(ret12.strip('azw'))#qazwsx print(ret12.strip('axs'))#qazw print(ret12.strip('qwa'))#zwsx
name='*egon**'
print(name.strip('*')) # egon
print(name.lstrip('*')) # egon**
print(name.rstrip('*')) # *egon
# ** split 以什么分割,最终形成一个列表此列表不含有这个分割的元素。
# split 将字符串分割成列表 以什么分割,最终形成一个列表此列表不含有这个分割的元素。
ret1 = 'lishi,jassin,helson'
ret2 = ret1.split('i') # ['l', 'sh', ',jass', 'n,helson']
print(ret2)
ret1 = 'lishi,jassin,helson'
ret3 = ret1.split(',')
print(ret3) # ['lishi', 'jassin', 'helson']
ret18 = 'title the tlie' ret19 = ret15.split('t') print(ret16)
输出:['', 'i', 'le ', 'he ', 'lie']
*****************************************#空字符串不是空格
# ****替换 replace
ret19 = '如果全世界都对你恶语相加我就对你说上一世情话' ret20 = ret19.replace('全世界','人世间',) print(ret20)
输出:
如果人世间都对你恶语相加我就对你说上一世情话
#*** 格式化输出 format
#第一种 (有顺序) ret21 = 'name:{},sex:{},身高:{}'.format('lishi','girl','168') print(ret21) #第二种 (有顺序) ret22 = 'name:{0},sex:{1},身高:{2},' \ 'name:{0}'.format('lishi','girl','168') print(ret22) #第三种:键值对 ret23 = 'name:{name},sex:{sex},身高:{high}'.format(name='lishi',sex = 'girl',high = 168) print(ret23)
输出:
name:lishi,sex:girl,身高:168
name:lishi,sex:girl,身高:168,name:lishi
name:lishi,sex:girl,身高:168
判断字符串由什么组成
isalnum:字母或数字 isalpha:字母 isdigit:数字
name = '123' print(name.isalnum()) # 字符串由字母或数字组成 print(name.isalpha()) # 字符串只由字母组成 print(name.isdigit()) # 字符串只由数字组成
输出:
True
False
True