-----学习视频来源于马士兵教育-----
内容主要为了自己复习用,也可以让大家梳洗思路
###字符串学习 #一、强制两个字符串ID相同 a=('a%') b=('a%') a=sys.intern(b) print(a is b) #二、字符串的查询操作 index不存在报错,find不存在返回-1 s='hello,worldlo' print(s.index('lo')) #3 第一次出现lo的位置 print(s.find('lo')) #3 第一次出现lo的位置 print(s.rindex('lo')) #11 最后一次出现lo的位置 print(s.rfind('lo')) #11 最后一次出现lo的位置 #三、字符串大小写转换 s='hello.world' s1=s.upper() print(s1) #HELLO.WORLD upper,所有字符转换成大写 s2=s1.lower() print(s2) #hello.world lower,所有字符变成小写 s='Hello.World' s3=s.swapcase() print(s3) #hELLO.wORLD swapcase把所有大写字符转换成小写,小写字母转换成大写 s='hello.World' s4=s.capitalize() print(s4) #Hello.world capitalize把第一个字符转换成大写,把其余字符都转换成小写 s='hello.world' s5=s.title() print(s5) #Hello.World title把每个单词的第一个字符转换成大写,剩余字符变为小写 ##字符串内容对齐操作的方法 s='hello,Python' ##共12个字符,设定为20,剩余间隔为20-12,默认间隔符为空格 print(s.center(20,"*")) #****hello,Python****居中对其 print(s.ljust(20,"*")) #hello,Python******** 左对齐 print(s.rjust(20,"*")) #********hello,Python 右对齐 print(s.zfill(20)) #00000000hello,Python, 0为填充间隔,右对齐 print('-99'.zfill(4)) #-099 加上符号换算位置 ##字符串分割 s='hello world' s1=s.split() print(s1) #['hello', 'world'] s2='hello|wo/rl/d' print(s2.split(sep='/')) ##['hello|wo', 'rl', 'd'] 指定/为分隔符 print(s2.split(sep='/',maxsplit=1)) #['hello|wo', 'rl/d'] print(s.rsplit()) #['hello', 'world'] 默认以空格为分隔符 print(s2.rsplit('/')) #['hello|wo', 'rl', 'd'] print(s2.rsplit(sep='/',maxsplit=1)) #['hello|wo/rl', 'd'] 从右边第一个进行分割 ###字符串判断 s='hello,world' print(s.isidentifier()) #False 判断是不是合法标识符,字母汉字 print('s'.isidentifier()) #True print('涨弹1'.isidentifier()) #True print('\t'.isspace()) #True 是否是制表符 print('abc'.isalpha()) #True 是否是字母组合 print('123'.isnumeric()) #True 是否是纯数字组合 print('123'.isdecimal()) #True 是否是数字组合,包含罗马数字 print('asb123'.isalnum()) #True 是否是数字+字母组合 ##字符串替换 s='hello,world,world' print(s.replace('world','java',1)) #hello,java,world 把第二个位置的world改为java lis=['hello','world','python'] print('|'.join(lis)) #hello|world|python 数组连接,|为分隔符 lis1=('hello','world') print('|'.join(lis1)) #hello|world 元组连接 print('*'.join('python')) ##p*y*t*h*o*n #字符串比较 print('apple'>'app') #True print(ord('a')) ##97 比较ord值 print(chr(97)) ##a #字符串切割从左往右是从0开始,从右往左是从-1开始 s='hello,world' s1=s[:5] s2=s[6:] s3='!' news=s1+s3+s2 print(s1) #hello print(s2) #world print(news) ##hello!world print(s[1:5:2]) ##el, 从1开始到5,步长为2 print(s[::2]) #hlowrd 每隔两个打印输出 print(s[::-1]) #dlrow,olleh 倒排 print(s[-5::1]) #world 从右开遍第五个往前输出 #格式化字符串 #%d%i 数字 #%s 字符 #%f 浮点数 name='宋' age=18 print('我叫%s,年龄%d' % (name,age)) #我叫宋,年龄18 print('我叫{0},年龄{1}'.format(name,age)) #我叫宋,年龄18 print(f'我叫{name},年龄{age}') #我叫宋,年龄18 #结果省略 print('%10d' % 99) # 99 print('%.3f' % 3.1415926) #3.142 print('{0}'.format(3.1415926)) ##3.142 print('{0:.3f}'.format(3.1415926)) ##3.142 #字符串编码解码 s='凤凰花开的路口' print(s.encode(encoding='GBK')) #b'\xb7\xef\xbb\xcb\xbb\xa8\xbf\xaa\xb5\xc4\xc2\xb7\xbf\xda' print(s.encode(encoding='utf-8')) #b'\xe5\x87\xa4\xe5\x87\xb0\xe8\x8a\xb1\xe5\xbc\x80\xe7\x9a\x84\xe8\xb7\xaf\xe5\x8f\xa3' jie=s.encode(encoding='GBK') print(jie.decode(encoding='GBK')) #凤凰花开的路口 jie=s.encode(encoding='utf-8') print(jie.decode(encoding='utf-8')) #凤凰花开的路口