Python(py)中的字符串类型是str,在内存中以Unicode表示,一个字符对应若干个字节,如果说需要在网络上传输,或者保存到磁盘就把str变为以字节为单位的bytes
Python对于bytes类型的数据用 带b前缀的单引号或者双引号表示,例如
x=b'ABC'
几个常用的函数encode(),decode(),len()
以Unicode表示的str通过encode()方法可以编码为指定的bytes,例如
'ABC'.encode('ascii')
'ABC'.encode('ascii')
Out[1]:
b'ABC'
In [2]:
str='ABC'
In [3]:
str.encode('ascii')
str.encode('ascii')
Out[3]:
b'ABC'
In [4]:
ASCLL
str.encode('ASCLL')
---------------------------------------------------------------------------
LookupError Traceback (most recent call last)
<ipython-input-4-e3991b725de6> in <module>()
----> 1 str.encode('ASCLL')
LookupError: unknown encoding: ASCLL
在 bytes 中,无法显示为 ASCII 字符的字节,用\x##显示。
反过来,如果我们从网络或磁盘上读取字节流,那么读到的数据就是bytes,要是把bytes
变为str,就需要用decode()方法:
>>> b'ABC'.decode('ascii')
'ABC'
>>> b'\xe4\xb8\xad\xe6\x96\x87'.decode('utf-8')
'中文'
len()函数可以判断str包含多少个字符
str='ADC'
str.len()
3
或者 len(str) len('ADC')
注:len()函数计算的是str的字符数,如果换成bytes的话就是计算字节数
>>> len(b'ABC')
3
格式化: 输出格式化的字符串
在py中,和C语言一样使用%来实现格式化。
常见的%占位符
%d 整数
%f 浮点数
%s 字符串
%x 十六进制整数
https://blog.csdn.net/hongzhen91/article/details/84065906 一些关于 常用占位符的操作都在这里面。
在字符串内部,%s表示用字符串替换,%d用整数替换,
使用了几个%,后面就要跟几个变量或者值,如果说只有一个%,括号就能省略
其中格式化整数和浮点数还可以指定是否补0 和整数与小数的位数
'%4d-%05d' %(3,222)
OUT:
' 3-00222'
# -号之前是四位 但是没有补0 -号之后是五位 但是少位补0
举例:
'Hi, %s, you have $%d.' % ('Michael', 1000000)
'Hi, Michael, you have $1000000.'
Tips:有时候,字符串的%是一个普通字符,这时候需要使用转移字符
用%%来表示一个%:
>>> 'growth rate: %d %%' % 7 '
growth rate: 7 %'