内容整理于廖雪峰官网和菜鸟教程
字符串和编码
编码
在计算机内存中,统一使用Unicode编码,当需要保存到硬盘或者需要传输的时候,就转换为UTF-8编码。
用记事本编辑的时候,从文件读取的UTF-8字符被转换为Unicode字符到内存里,编辑完成后,保存的时候再把Unicode转换为UTF-8保存到文件。
浏览网页的时候,服务器会把动态生成的Unicode内容转换为UTF-8再传输到浏览器。
python字符串
- Unicode编码,支持多语言
- 相关操作
1、反斜杠可以用来转义,使用r可以让反斜杠不发生转义。
2、字符串可以用+运算符连接在一起,用*运算符重复。
3、Python中的字符串有两种索引方式,从左往右以0开始,从右往左以-1开始。
4、Python中的字符串不能改变(不能向索引位置赋值)。 - 相关函数
ord() 获取字符整数表示
chr() 把编码转换成对应的字符
'ABC’是str,b’ABC’是bytes
纯英文的str可以用ASCII编码为bytes,内容是一样的,含有中文的str可以用UTF-8编码为bytes,中文用ascii编码会报错。
编码函数encode() ,解码函数decode()
len() 统计字符串的字符数,bytes类型的字节数,1个中文字符经过UTF-8编码后通常会占用3个字节,而1个英文字符只占用1个字节。
>>> 'ABC'.encode('ascii')
b'ABC'
>>> '中文'.encode('utf-8')
b'\xe4\xb8\xad\xe6\x96\x87'
>>> '中文'.encode('ascii')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-1: ordinal not in range(128)
格式化
%运算符来格式化字符串
在字符串内部,%s表示用字符串替换,%d表示用整数替换,有几个%?占位符,后面就跟几个变量或者值,顺序要对应好。如果只有一个%?,括号可以省略。
%s可以将任意类型转化为字符串,字符串中用%%表示%。
占位符 | 替换内容 |
---|---|
%d | 整数 |
%f | 浮点数 |
%s | 字符串 |
%x | 十六进制整数 |
‘Hello, %s’ % ‘world’’——Hello, world’
‘Hi, %s, you have $%d.’ % (‘Michael’, 1000000)——‘Hi, Michael, you have $1000000.’
print(‘hello,this it the %dth %s’%(10,‘aaa’))
保留小数
print("%.2f" % 0.13333) 保留两位小数
round(0.1223242,2) 保留两位小数