python字符串复制_奇妙的Python编程之旅:字符串拼接,格式化输出和深浅复制

u=2482199140,3153621825&fm=173&app=49&f=JPEG?w=640&h=267&s=3E22920950316C2B44781ED90300C0BCPython

大家好!我们学了序列类型有字符串(str)、列表(list)、元组(tuple),今天我们来学习一下字符串的拼接、格式化输出与深浅复制。开发工具:IDLE (Python 3.7 64-bit) (注:不需要3.7版本的也行,只需要Python3的版本都可以,32位和64位的系统都可以不需要纠结)

u=358660801,2498124192&fm=173&app=49&f=JPEG?w=640&h=267&s=BAD081440D65A8011EDA581A030030DA请点击Python的图片

我们在开始学习之前,我没那么是否记得怎么将几个字符串(str)拼接到一起呢?

u=2802206694,2923508436&fm=173&app=49&f=JPEG?w=640&h=176&s=A7D0ED320D625D204469D1D90000C0B1简单的字符串拼接方法

字符串(str)拼接的方法格式化字符串%s的方法

u=1884968492,3744112627&fm=173&app=49&f=JPEG?w=640&h=315&s=8FD0E112075A4C6146E509DB0200C032%s占位符的用法

join的方法,主要是针对iterable可迭代对象,大家请注意序列类型都是可迭代的对象。就是说,序列类型:字符串(str)、列表(list)、元组(tuple)都是可迭代对象,故都可以用join方法来拼接参数。

u=2636306719,2819808177&fm=173&app=49&f=JPEG?w=640&h=302&s=8F50E512873A442B40C449CA0200C0B2join的方法

u=2636306719,2819808177&fm=173&app=49&f=JPEG?w=640&h=302&s=8F50E512873A442B40C449CA0200C0B2join的方法

format的方法,'{}{}{}'.format(a,b,c) (注:{}里面可以填入与后面相对应的符号),与格式化字符串的方法有一点的类似。format方法详解:'{}{}{}'.format(a,b,c), 当{}里面是空的时候,里面默认索引为0,1,2按format括号里的顺序依次填入, '{1}{2}{0}'.format(a,b,c)。当{}里面有索引值时,按前面的索引值将后面的每项依次填入'{n1}{n2}{n3}'.format(n1=a,n2=b,n3=c){}里面可以指定对象名称,后面通过赋值的方式给前面的相应的值,后面是无序。

u=482977135,1338636356&fm=173&app=49&f=JPEG?w=640&h=342&s=8F50E112190A454900E56DD90200D032format方法

2.格式化输出

格式化%s

u=1545972406,1217621127&fm=173&app=49&f=JPEG?w=640&h=190&s=0E40C012C7707C20487840DE02005032格式化%s

格式化整数(%d)和格式化小数(%f).

u=3713374491,3964456055&fm=173&app=49&f=JPEG?w=640&h=497&s=CF50E51211CE4149404929CB02005032格式化小数(%f)和格式化整数(%d)

格式化ASCLL码(%c)。

u=2795926958,254179018&fm=173&app=49&f=JPEG?w=528&h=242&s=2EC0E8121F585C414854E4DE0000D0B2格式化ASCLL码

格式化八进制( %o)。

u=3897849938,170507210&fm=173&app=49&f=JPEG?w=413&h=238&s=8EC0C912110A754B087C0CCE000010B2格式化八进制

格式化十六进制(%x).

u=2230457948,3115915523&fm=173&app=49&f=JPEG?w=462&h=306&s=AFC0E11201465D4B42FC2DCA0000C0B2格式化十六进制

格式化科学计数法(%e).

u=429397995,2565745896&fm=173&app=49&f=JPEG?w=432&h=134&s=C640F01A1B6249300ECC31DA000080B0格式化科学计数法

"+"、“-”显示它的正负。

u=817512164,3599469309&fm=173&app=49&f=JPEG?w=421&h=149&s=0E70ED124B624F244A5500DA000080B2显示它的正负

"\n”表示的是换行符;“\t”制表符,实质上是在两个参数中间用四个空格隔开。

u=1748566442,1614796147&fm=173&app=49&f=JPEG?w=454&h=215&s=CF40E81203524D6C4C7925DA0000C0B2换行符(\n)和制表符(\t)

3.深浅复制(只会出现在嵌套列表中)

定义一个列表li=['a','b'],然后在定义一个列表L2=[1,li]输出L2的结果就是[1,['a','b']](这样就可以定义一个嵌套列表)。我们在学习深浅复制的时候,需要引入一个模块impot copy.

L浅复制=L2.copy()输出L浅复制的结果为[1,['a','b']]

L深复制=copy.deepcopy(L2)输出L深复制的结果为[1,['a','b']],深复制和浅复制的输出结果类似,怎么样才能让两个值有所区别呢?

我们可以在li被嵌套的列表中插入值,li.append('c')输出L浅复制的结果为[1,['a','b','c']],被嵌套的列表li输出结果为[1,['a','b','c']].我们可以看出当被嵌套列表li发生改变的时候我们L浅复制的输出结果也随之改变。

L深复制的输出结果仍然为[1,['a','b']],我们可以发现即使被嵌套列表li发生改变,L深复制的输出结果仍然不变。

然后我们查看他们的内存地址ID,id(li)内存地址输出:46646536,id(L浅复制[1])用的是被嵌套列表的索引值查看,输出结果为:46646536。

最后我们看L深复制的内存地址ID,id(L深复制[1])用的是被嵌套列表的索引值查看,输出结果为:46646152。

总结:我们用deepcopy深复制的内存地址是永远不变的,改变的是浅复制的内存地址,深复制的一直默认保持的是原来的参数的最初状态。即使添加值,也无法改变深层复制的内容。

u=2230534634,733718101&fm=173&app=49&f=JPEG?w=605&h=650&s=CC42DD1AC91EE5CC4EF505DA0000C0B2浅复制和深复制

好了今天的内容很轻松,有时间搭建可以多探索多实践,这样有助于理解。成功路上一直很孤独,要抵达别人看不到的风景,就要承受别人所没有承受的寂寞。加油!我们一直在路上。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值