python基础之字符串常用操作总结

字符串的索引

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())  # 字符串只由数字组成

原文地址:https://www.cnblogs.com/lishi-jie/p/9836260.html