python基础笔记--格式化输出和深浅复制

一、格式化输出

思考:
1.之前讲了字符串的拼接,其中讲了字符串的格式化,除了%s还有哪些格式化?
2.format还有其他的用法吗?

a.格式化输出的方式
a='小明'
b=20
c='广东人'

print('我叫%s,今年%s,我是%s',%(a,b,c))

b.%f的用法
%-6.3f%10.3    左对齐

   ‘%+6.3f%-10.3   显示正负
c.format的用法
'{:.2f}'.format(12.333)         保留小数点后两位

'{a:.2f}'.format(a=12.333)

'{:.2%}'.format(0.333)         百分比格式

'{0:x}'.format(20)                转换成十六进制

'{0:o}'.format(20)                转换成八进制     

                                 进制转换的时候用{0:进制}

'{a:<10}'.format(a=12.3,b=13.44)          右对齐,长度为10(大于前面填什么符合就跟着输入什么)

'{a:0<10}'.format(a=12.3,b=13.44)        数字补x (填充右边, 宽度为4)

'{a:0>10}'.format(a=12.3,b=13.44)        左对齐...

'{a:0^10}'.format(a=12.3,b=13.44)        两边对齐...

'{{  hello {0} }}'.format('python’)         转义{}符号

f = ' hello {0} '.format

f('python’)        这里可以把format当作一个函数来看
格式化和转义应用

格式化得到的结果都是字符串,通过把位置预先留出来,后期再往其中填入内容可以让输出内容更加整洁美观,而又具有良好的可读性,同时让代码更简洁精练

字符串的转义可以方便我们表示我们不太方便表示的字符,同时转义有些情况下又会带来麻烦,特别是在表示路径的时候,这种情况下可以在字符串前面加上 r 来去掉字符串的转义

二、字符串编码

思考
1.刚才我们讲到了我们在python内部要对字符串进行拼接和格式化是为了输出和传输,那python中字符串的可以直接在网络上传输吗?

2.如果不可以的话,python内部是怎么做的呢?

a.编码(encode)

两种编码:国际编码utf-8和国内gbk

'潭州'.encode(encoding='utf8')	国际编码

'潭州'.encode(encoding='gbk')	国内编码

上面的输出结果分别是:

b'\xe6\xbd\xad\xe5\xb7\x9e'

b'\xcc\xb6\xd6\xdd'
b.解码(decode)

用那种编码的就用那种解码

a='潭州'.encode('utf8')

a.decode('utf8')
编码的发展

在这里插入图片描述

python对字符集的处理

在这里插入图片描述

字符串编码的作用

Python统一了编码,这样Python在内部处理的时候不会因编码不同而出现程序不能正常执行的问题

Python会自动根据系统环境选择编码,但是经常在文件传输的过程中,会遇到各种不同的编码,这个时候就需要我们去处理编码问题

三、深浅复制

思考?
1.列表里面可以放列表吗?

a.浅复制
    a=[1,2,3]

	b=a.copy()	

	b=[1,2,3]	复制后内存地址不相同

	print(id(a[0]))				

	print(id(b[0]))		内存地址都相同

b.深复制
   #需导入包     
    import copy
	a=[1,2,3]
	
	c=copy.deepcopy(a)

	id(a[0])				

	id(c[0])		内存地址不相同

***注:深复制全都复制过

***查看关键字 help(‘keywords’)
深浅复制的应用

深浅复制只有在列表嵌套列表的情况下讨论

如果想保留修改之前的数据,就可以使用列表的复制,但要注意列表嵌套情况下的问题

四、bytes和bytearray

思考:
Python中的序列类型还有吗?

a.bytes二进制序列类型

指定长度的零填充字节对象:

bytes(3)

二进制字符串对象:

bytes(b'abc')
b.bytearray二进制数组

指定长度的零填充字节对象:

bytearray(3)

二进制字符串对象:

bytearray(3)
二进制序列类型的应用

二进制序列类型的用法比较少见,是python中少用的一种序列类型

对于二进制序列类型,大家基本了解即可

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值