时间:2021-05-22
之前我们学习过一个不可变的序列叫元组,今天我们探讨的字符串,也是一个不可变序列。
一个概念: 字符串的驻留机制
那什么是字符串的驻留机制呢?
意思是: 仅保留一份相同且不可变字符串的方法,不同的值被存放在字符串的驻留池中,python的驻留机制对相同的字符串只保留一份拷贝,后续创建相同字符串时候,不会开辟新的空间,而是把该字符串的地址重新赋值给新建的变量。
输出结果
可以看到ID都是一样的。
在内存中只有一份
几点注意事项:
在交互模式下,能实现驻留机制的情况:
关于字符串的操作,我们可以把字符串看成是关于字符的列表:
这里建议大家使用find,或者rfind,因为不会报异常
输出结果:
hello,ITlaoxin
hello,itlaoxin
swapcase() 把字符串中所有的大写字母转换成小写字母,把所有的小写字母转换成大写字母
# 作者:互联网老辛# 开发时间:2021/4/4/0004 6ss="hello,ITlaoxin"a=s.swapcase()print(a,id(a))print(s,id(s))一共14个字符,定义20个字符,左右各三个
如果不写* ,默认是空格
这种方式会用0填充
# 作者:互联网老辛# 开发时间:2021/4/4/0004 6ss="hello,ITlaoxin"print(s.zfill(20))输出结果:
我们可以指定分割符,用sep=‘|' 的形式
# 作者:互联网老辛# 开发时间:2021/4/4/0004 6ss="hello|ITlaoxin|gaosh"lst=s.split(sep='|')print(lst)输出结果
['hello,ITlaoxin']
如果这个地方我们用默认的空格会是什么结果:
# 作者:互联网老辛# 开发时间:2021/4/4/0004 6ss="hello|ITlaoxin|gaosh"lst=s.split()print(lst)结果
['hello|ITlaoxin|gaosh']
可以看到,因为这个字符串中没有空格,所以他就是一个元素的列表。
# 作者:互联网老辛# 开发时间:2021/4/4/0004 6ss="hello|ITlaoxin|gaosh"lst=s.split(sep='|',maxsplit=1)print(lst)结果:
['hello', 'ITlaoxin|gaosh']
这里只拆分了一次。
maxsplit可以指定最大拆分次数
这个和split的使用方法一样,只是rsplist是从右边开始拆分,splist从左边拆分
# 作者:互联网老辛# 开发时间:2021/4/4/0004 6ss="hello|ITlaoxin|gaosh"lst=s.split(sep='|',maxsplit=1)print(lst)lst1=s.rsplit(sep='|',maxsplit=1)print(lst1)结果如图所示:
e) 字符串的其他操作 字符串的替换replace()
# 作者:互联网老辛# 开发时间:2021/4/4/0004 6ss='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 6slst=['hello','java','python']print('|'.join(lst))结果:hello|java|python
f) 字符串的比较
使用运算符 >,>= ,<,<= ,= ,!=
# 作者:互联网老辛# 开发时间:2021/4/4/0004 6sprint('1','itlaoxin'>'laoxin')print('2','itlaoxin'>'itlaox')结果:
False
True
如果第一个字母就不相同,就比较原始值 ord()
# 作者:互联网老辛# 开发时间:2021/4/4/0004 6sprint('1','itlaoxin'>'laoxin')print('2','itlaoxin'>'itlaox')print('3','python'>'java')## 相当于print(ord('p'),ord('j'))第三个相当于112与106比较
g) 字符串的切片
字符串是不可变类型,不具备增删改查的操作,切片是会产生新的对象的
# 作者:互联网老辛# 开发时间:2021/4/4/0004 6sa='hello,world,itlaoxin'print(a[:5])输出结果:
hello
不写起始位置,它会从index0开始切
# 作者:互联网老辛# 开发时间:2021/4/4/0004 6sa='hello,world,itlaoxin'print(a[6:]) #world,itlaoxin没有指定结束位置,会切到最后
step是指定步长
# 作者:互联网老辛# 开发时间:2021/4/4/0004 6sa='hello,world,itlaoxin'print(a[1:8:2]) #el,o# 作者:互联网老辛# 开发时间:2021/4/4/0004 6sa='hello,world,itlaoxin'print(a[1:8:2])print(a[::2]) #hlowrdiloih) 格式化字符串
为什么要格式化字符串呢?
字符串的拼接会产生新的Id,会造成空间浪费, 这个时候就需要使用字符串的格式化。
格式化字符串的两种方式:
% 做占位符
{} 做占位符
要使用到format()方法
# 作者:互联网老辛# 开发时间:2021/4/4/0004 6s#第一种方式%name='互联网老辛'age='40'print('我叫{0},今年{1}岁了'.format(name,age))除此之外还可以表示精读和宽度:
# 作者:互联网老辛# 开发时间:2021/4/4/0004 6sprint('%d'% 99)print('%10d'% 99)这里的10表示的就是宽度
精度:
保留3位小数
混合使用:
# 作者:互联网老辛# 开发时间:2021/4/4/0004 6sprint('%10.3f' % 3.11516)%10.3f
总宽度为10,小数点保留3位
到现在所有的数据类型的基本操作就介绍完了,这些应该都算是基础,接下来我们要进入到函数的章节。
到此这篇关于Python的字符串示例讲解的文章就介绍到这了,更多相关Python的字符串内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
在Python中,字符串是一种常用的数据类型。对字符串的定义及表达方式有了了解后,接下来的学习,将为大家讲解如何使用Python来实现字符串的拼接。1.加号拼接
小编之前向大家讲解了很多关于字符串的知识,大家也都知道字符串在python中的作用很大,那你知道在python中用于接收字符串等输入,让用户可与之交互以输入或操
字符串处理是非常常用的技能,但Python内置字符串方法太多,常常遗忘,为了便于快速参考,特地依据Python3.5.1给每个内置方法写了示例并进行了归类,便于
python字符串替换是python操作字符串的时候经常会碰到的问题,这里简单介绍下字符串替换方法。python字符串替换可以用2种方法实现:1是用字符串本身的
字符串是Python中最常用的数据类型。我们可以使用引号来创建字符串。python字符串关键点有下面几点:1.一些引号分隔的字符你可以把字符串看出是Python