1、字符和字符串
ord()
获得字符整数表示
>>>ord('A')
65
>>>ord('中')
20013
chr()
把编码转换为对应字符
>>>chr(66)
B
>>>chr(25991)
文
Python对bytes
类型的数据用带b前缀的单引号或双引号表示:
x = b'ABC'
要注意区分'ABC'
和b'ABC'
,前者是str
,后者虽然内容显示得和前者一样,但bytes
的每个字符都只占用一个字节。
以Unicode表示的str
通过encode()
方法可以编码为指定的bytes
,
- 例如:
>>>'ABC'.encode('ascii') b'ABC' >>>'中文'.encode('utf-8') b'\xe4\xb8\xad\xe6\x96\x87'
- 反过来,如果我们从网络或磁盘上读取了字节流,那么读到的数据就是
bytes
。要把bytes
变为str
,就需要用decode()
方法:>>> b'ABC'.decode('ascii') 'ABC' >>> b'\xe4\xb8\xad\xe6\x96\x87'.decode('utf-8') '中文'
len()
计算str
有多少字符>>>len('ABC') 3 >>> len('中文') 2
len()
计算bytes
有多少字节>>>len(b'ABC') 3 >>> len(b'\xe4\xb8\xad\xe6\x96\x87') 6 >>> len('中文'.encode('utf-8')) 6
2、%实现格式化
Python用%实现格式化,用%?
表示占位符,常用占位符有
- %d ,整数
- %f ,浮点数
- %s ,字符串
- %x ,十六进制整数
例如:
>>> 'Hello, %s' % 'world'
'Hello, world'
>>> 'Hi, %s, you have $%d.' % ('Michael', 1000000)
'Hi, Michael, you have $1000000.'
格式化整数和浮点数还可以指定补0与小数位数,例如:
>>>print('%2d-%02d' % (3, 1))
#第一个整数输出两位不补0,第二个输出两位补0
3-01
>>> print('%.2f' % 3.1415926)
#输出小数点后两位
3.14
不太确定应该用什么,%s
永远起作用,可以把任何数据转成字符串
>>> 'Age: %s. Gender: %s' % (25, True)
'Age: 25. Gender: True'
如果字符串里的%
是个普通字符,需要用%%
转义来表示%
>>> 'growth rate: %d %%' % 7
'growth rate: 7 %'