time :5-21
字符串驻留机制
仅作了解即可
字符串的操作
1,字符串的查询
查找子字符串第一次出现的位置 .index(''子串'') / .find(''子串'')
查找子字符串最后一次出现的位置 .rindex(''子串'') / .rfind(''子串'')
2,大小写的转换
upper()#把字符串中的所有字符转换成大写字母
lower()#把字符串中的所有字符转换成小写字母
swapcase()#小写转大写,大写转小写
capitalize()#把第一个字符转换成大写,其余转换成小写
title()#把每个单词的第一个字符转换成大写,其余小写
3,字符串对齐操作
1,.center() 居中对齐,第一个参数指定宽度,第二的参数指定填充字符,可以不填,默认空格,如果设置宽度小于实际宽度则返回原字符。
s='hello,pyhton' print(s.center(20,'*'))
输出结果:hello,pyhton
分析:输出的字符串总长度为20,但原字符串长度为12,故剩下的长度为8,即左右各分配4个字符存放*
2,.ljust() 左对齐参数上同
s='hello,pyhton' print(s.ljust(20,'*'))
输出结果:****hello,pyhton****
3,.rjust() 右对齐
4,.zfill() 右对齐,左边用0填充,该方法只接收一个参数,用于指定字符串的宽度,如果设置宽度小于实际宽度则返回原字符。
s='hello,pyhton' print(s.zfill(20))
输出结果:00000000hello,pyhton
4,字符串劈分操作
.split() 从字符串的左边开始劈分,默认的是空格返回值是一个列表;可以通过参数sep指定分割符;使用.maxsplit() 指定劈分个数,剩余部分为一个整体储存。
s='hello world python'
lis=s.split()
print(lis)
s2='hello*world*python'
print(s2.split(sep='*'))
print(s2.split(sep='*',amxsplit=1))
输出结果:['hello', 'world', 'python']
['hello', 'world', 'python']
['hello', 'world*python']
5,字符串的替换与合并
1,替换 .replace() 第一个参数指定替换的字符串,第二个参数是要替换成的字符串,第三个参数指定最大替换次数。
s='hello world python'
print(s.replace('python','java'))
s2='hello python python'
print(s2.repalce('pyhton','java',2))
输出结果:hello world java hello java java
2,'字符串'.join() ,合并列表中的字符串用前面的指定字符串。
s=['hello','python','okkkk'] print('¥'.join(s))
输出结果:hello¥python¥okkkk
time :5-23
字符串的比较操作
与C的字符串比较函数 strcmp() 相同,从前往后逐个比较,不同即终止,比较规则可以直接比较。
另外在python中字符也有自己的编码值,例如a的值为97,与C相同。
print('asd'>'asb') print('asdasda'>'bjkhh')
输出结果:True False
如果值判断两个字符串是否相等,可以用 is 来替代看里面的比较符号。
字符串的切片操作
s[初始位置:末位置:步长],如果后面没有指定位置,则一直到末尾。
s='hello,world' print(s[:5]) print(s[0:]) print(s[0: :2])
输出结果:hello hello,world hlowrd
格式化字符串
与C里面的输入格式类似,例如:
scanf("我叫%s,今年%d岁",name,age);
name='张三'
age=20
print('我叫%s,今年%d岁' % (name,age))
print('我叫{0},今年{1}岁' .foemat(name,age))
print(f'我叫{name},今年{age}岁')
输出结果均为:我叫张三,今年20岁
其他输出方式:
print('%d' % 89)
print('%10d' % 95)#前面用空格填充,一共十个字符
print('%.3f' % 3.1415926)#保留小数位数,与C相同;若输入 %10.3 与上面含义相同