字符串的索引
s = 'ABCDLSESRF'
# 索引
这两个很简单没什么说的
s1 = s[0]
print(s1) # A
s2 = s[2]
print(s2) # C
切片
s = 'ABCDLSESRF'
来分析一波
切片:顾头不顾尾 s[首:尾:步长]
s3 = s[0:4] # 顾头不顾尾 索引包含0 不包含4 L是第四个索引 所以输出 ABCD
print(s3) # ABCD
s4 = s[-1] # 索引取-1
print(s4) # F
s5 = s[-2] # 索引取-2
print(s5) # R
s8 = s[0:] # s[首:] 首为0(可以不写) 指向全部
s6 = s[:] # 取全部
print(s6, s8) # ABCDLSESRF
s7 = s[0:0] # 首为0 尾为0 不包含0 故什么都取不出来
print(s7) # ' '
s10 = s[0:5:2] # ACL # 首为0 尾取到五但不包含第五位 --》ABCDLS 步长为2 --》 A C L
print(s10) A C L
s11 = s[3::-1] # 首为3 隔1倒着取
print(s11) # DCBA
s12 = s[3::-2] # 首为3 隔2倒着取 --》 DB
print(s12)
s13 = s[-1::-1] # 首为-1 隔1倒着取
print(s13) # FRSESLDCBA
s14 = s[::-1] # 首为0 隔1倒着取
print(s14) # FRSESLDCBA
字符串操作
s = 'noevil'
s1 = s.capitalize() #首字母大写
print(s1)
s2 = s.upper()
print(s2) # 全部大写
s3 = s2.lower() # 全部小写
print(s3)
s_str = 'acEQ'
input = input('请输入验证码(不区分大小写): ')
if s_str.upper() == input.upper():
print('输入成功')
else:
print('请重新输入')
# 大小写反转
s = 'kk LL'
s3 = s.swapcase()
print(s3) # KK ll
# 每个隔开(特殊字符或者数字)的单词首字母大写
text = 'lsss kk'
print(text.title()) # Lsss Kk
# 居中,空白填充
ss = 'Noevil'
s4 = ss.center(20, '*') # *******Noevil******* #共20个,去除本身的,两边用*填充
print(s4) # *******Noevil*******
sss = 'No evil' # 不足8位补8位 将table转为空格
s5 = sss.expandtabs() # 报表有可能用到
print(s5) # No evil
公共的方法
# len 统计字符串长度
test1 = 'dadjdkfjkfdj'
l = len(test1) # 12
# len 字典统计key
test2 = {'k': 1, 'l': 2, 'o': 3}
p2 = len(test2) # 有几个键
print(l, p2) # 3
# startswith 以什么开头
test3 = 'Noevil'
p4 = test3.startswith('No')
print(p4) # True
p5 = test3.startswith('e', 2, 4) # 顾头不顾尾 以2开头,结尾为v
print(p5) # True
# find 通过元素找索引找不到返回-1
p6 = test3.find('e')
print(p6) # 2
# index 通过元素找索引找不到报错
p7 = test3.index('a') # 报错
print(p7)
# strip rstrip lstrip 重要的去除非法字符的函数
test4 = ' noevil '
p8 = test4.strip() # 默认去除两边的空格
print(p8) # noevil
test5 = '*no%evil%3*% '
p9 = test5.strip(' %*') # 机制为同时从前往后循环查找删除两边的包含指定对象,顺序无所谓
print(p9) #no%evil%3
# 统计出现的次数
test6 = ' sdaaanoevil '
p10 = test6.count('aa')
print(p10) # 1
# spilt 将字符串拆分 str ----> list
test7 = 'enoevil'
p11 = test7.split('e')
print(p11) # ['', 'no', 'vil'] 一分为二,左边没有就为 ' '
# format 的三种玩法 格式化输出
test8 = '你好{},我是{}'.format('Novil', 'vil')
print(test8) # 你好Novil,我是vil
test9 = '你好{0},我是{1}'.format('nov', 'vil')
print(test9) # 你好nov,我是vil
test10 = '你好{name},我是{tname}'.format(name='llll', tname='666666')
print(test10) # 你好llll,我是666666
# replace 替换
test11 = '人要是行做一行行一行'
p10 = test11.replace('行', '不行', 2) # 数字为替换几次
print(p10) # 人要是不行做一不行行一行
# is系列
name = 'syw521'
print(name.isalnum()) # 字符串由字母或数字组成
print(name.isalpha()) # 字符串由字母组成
print(name.isdigit()) # 字符串只由数字组成