文本给大家介绍的是Python的字符串的内容,详细介绍了字符串的创建,字符串的定义,字符串的操作,具有一定的借鉴价值,有需要的朋友可以参考学习。
一个概念: 字符串的驻留机制那什么是字符串的驻留机制呢?
意思是: 仅保留一份相同且不可变字符串的方法,不同的值被存放在字符串的驻留池中,python的驻留机制对相同的字符串只保留一份拷贝,后续创建相同字符串时候,不会开辟新的空间,而是把该字符串的地址重新赋值给新建的变量。
# 作者:互联网老辛 # 开发时间:2021/4/4/0004 6s a='itlaoxin' b="itlaoxin" c='''itlaoxiin''' print(a,b,c,id(a),id(b),id(c))
输出结果
可以看到ID都是一样的。在内存中只有一份
几点注意事项:
在交互模式下,能实现驻留机制的情况:
关于字符串的操作,我们可以把字符串看成是关于字符的列表:
# 作者:互联网老辛 # 开发时间:2021/4/4/0004 6s s='hello,world' print(s.index('l')) #2 print(s.find('l')) #2 print(s.rfind('l')) #9 print(s.rindex('l')) #9
这里建议大家使用find,或者rfind,因为不会报异常
# 作者:互联网老辛 # 开发时间:2021/4/4/0004 6s s="hello,ITlaoxin" a=s.upper() print(s) print(a)
# 作者:互联网老辛 # 开发时间:2021/4/4/0004 6s s="hello,ITlaoxin" a=s.lower() print(s) print(a)
输出结果:
hello,ITlaoxin
hello,itlaoxin
swapcase() 把字符串中所有的大写字母转换成小写字母,把所有的小写字母转换成大写字母
# 作者:互联网老辛 # 开发时间:2021/4/4/0004 6s s="hello,ITlaoxin" a=s.swapcase() print(a,id(a)) print(s,id(s))
# 作者:互联网老辛 # 开发时间:2021/4/4/0004 6s s="hello,ITlaoxin" a=s.title() print(a)
# 作者:互联网老辛 # 开发时间:2021/4/4/0004 6s s="hello,ITlaoxin" print(s.center(20,'*'))
一共14个字符,定义20个字符,左右各三个
# 作者:互联网老辛 # 开发时间:2021/4/4/0004 6s s="hello,ITlaoxin" print(s.ljust(20,"*"))
如果不写* ,默认是空格
# 作者:互联网老辛 # 开发时间:2021/4/4/0004 6s s="hello,ITlaoxin" print(s.rjust(20,"*"))
这种方式会用0填充
# 作者:互联网老辛 # 开发时间:2021/4/4/0004 6s s="hello,ITlaoxin" print(s.zfill(20))
# 作者:互联网老辛 # 开发时间:2021/4/4/0004 6s s="hello,ITlaoxin" lst=s.split() print(lst)
输出结果:
我们可以指定分割符,用sep=‘|' 的形式
# 作者:互联网老辛 # 开发时间:2021/4/4/0004 6s s="hello|ITlaoxin|gaosh" lst=s.split(sep='|') print(lst)
输出结果
['hello,ITlaoxin']
如果这个地方我们用默认的空格会是什么结果:
# 作者:互联网老辛 # 开发时间:2021/4/4/0004 6s s="hello|ITlaoxin|gaosh" lst=s.split() print(lst)
结果
['hello|ITlaoxin|gaosh']
可以看到,因为这个字符串中没有空格,所以他就是一个元素的列表。
# 作者:互联网老辛 # 开发时间:2021/4/4/0004 6s s="hello|ITlaoxin|gaosh" lst=s.split(sep='|',maxsplit=1) print(lst)
结果:
['hello', 'ITlaoxin|gaosh']
这里只拆分了一次。
maxsplit可以指定最大拆分次数
这个和split的使用方法一样,只是rsplist是从右边开始拆分,splist从左边拆分
# 作者:互联网老辛 # 开发时间:2021/4/4/0004 6s s="hello|ITlaoxin|gaosh" lst=s.split(sep='|',maxsplit=1) print(lst) lst1=s.rsplit(sep='|',maxsplit=1) print(lst1)
结果如图所示:
# 作者:互联网老辛 # 开发时间:2021/4/4/0004 6s s='hello,world,python' print('1',s.isidentifier()) print('2','hello'.isidentifier()) print('3','\t'.isidentifier()) print('4','abc'.isspace()) print('5','abc'.isalpha()) print('6','1'.isspace()) print('7','123'.isnumeric()) print('8','abc123'.isalnum()) print('9','123abc!'.isalnum())
e) 字符串的其他操作 字符串的替换replace()
# 作者:互联网老辛 # 开发时间:2021/4/4/0004 6s s='hello,world,python' print(s.replace('python','itlaoxin')) s1='hello,python,python ,python' print(s1.replace('python','itlaoxin',2))
结果:
hello,world,itlaoxin
hello,itlaoxin,itlaoxin ,python
字符串的合并 join()
# 作者:互联网老辛 # 开发时间:2021/4/4/0004 6s lst=['hello','java','python'] print('|'.join(lst))
结果:hello|java|python
f) 字符串的比较
使用运算符 >,>= ,<,<= ,= ,!=
# 作者:互联网老辛 # 开发时间:2021/4/4/0004 6s print('1','itlaoxin'>'laoxin') print('2','itlaoxin'>'itlaox')
结果:
False
True
如果第一个字母就不相同,就比较原始值 ord()
# 作者:互联网老辛 # 开发时间:2021/4/4/0004 6s print('1','itlaoxin'>'laoxin') print('2','itlaoxin'>'itlaox') print('3','python'>'java') ## 相当于 print(ord('p'),ord('j'))
第三个相当于112与106比较
g) 字符串的切片
字符串是不可变类型,不具备增删改查的操作,切片是会产生新的对象的
# 作者:互联网老辛 # 开发时间:2021/4/4/0004 6s a='hello,world,itlaoxin' print(a[:5])
输出结果:
hello
不写起始位置,它会从index0开始切
# 作者:互联网老辛 # 开发时间:2021/4/4/0004 6s a='hello,world,itlaoxin' print(a[6:]) #world,itlaoxin
没有指定结束位置,会切到最后
step是指定步长
# 作者:互联网老辛 # 开发时间:2021/4/4/0004 6s a='hello,world,itlaoxin' print(a[1:8:2]) #el,o
# 作者:互联网老辛 # 开发时间:2021/4/4/0004 6s a='hello,world,itlaoxin' print(a[1:8:2]) print(a[::2]) #hlowrdiloi
h) 格式化字符串
为什么要格式化字符串呢?
字符串的拼接会产生新的Id,会造成空间浪费, 这个时候就需要使用字符串的格式化。
格式化字符串的两种方式:
% 做占位符
# 作者:互联网老辛 # 开发时间:2021/4/4/0004 6s #第一种方式% name='互联网老辛' age=40 print('我叫%s,今年%d岁了'%(name,age))
{} 做占位符
要使用到format()方法
# 作者:互联网老辛 # 开发时间:2021/4/4/0004 6s #第一种方式% name='互联网老辛' age='40' print('我叫{0},今年{1}岁了'.format(name,age))
除此之外还可以表示精读和宽度:
# 作者:互联网老辛 # 开发时间:2021/4/4/0004 6s print('%d'% 99) print('%10d'% 99)
这里的10表示的就是宽度
精度:
保留3位小数
# 作者:互联网老辛 # 开发时间:2021/4/4/0004 6s print('%.3f' % 3.11516)
混合使用:
# 作者:互联网老辛 # 开发时间:2021/4/4/0004 6s print('%10.3f' % 3.11516)
%10.3f
总宽度为10,小数点保留3位
关于python字符串的介绍就到这,希望对大家学习python有一定的帮助,想要了解更多python内容大家可以继续关注其他文章。
文本转载自脚本之家
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
长按识别二维码并关注微信
更方便到期提醒、手机管理