1.Python对bytes
类型的数据用带b
前缀的单引号或双引号表示:
要注意区分'ABC'
和b'ABC'
,前者是str
,后者虽然内容显示得和前者一样,但bytes
的每个字符都只占用一个字节。
s1 = 'ABC'
s2 = u'ABC'
s3 = b'ABC'
print('s1:',s1,'\ns2:',s2,'\ns3:',s3)
s1: ABC
s2: ABC
s3: b'ABC
2.纯英文的str
可以用ASCII或者utf-8
编码为bytes
,内容是一样的,含有中文的str
可以用UTF-8
编码为bytes
。含有中文的str
无法用ASCII
编码,因为中文编码的范围超过了ASCII编码的范围,Python会报错。编码方式见下:
ss1 = '凯尔特人'
ss1.encode('utf-8')
b'\xe5\x87\xaf\xe5\xb0\x94\xe7\x89\xb9\xe4\xba\xba'
注意,前面多了‘b’,说明现在它已经被转成了bytes类型
ss1 = 'Celtics'
ss2 = 'Lakers'
print(ss1.encode('ASCII'),ss2.encode('utf-8'))
b'Celtics' b'Lakers'
3. %
运算符就是用来格式化字符串的。在字符串内部,%s
表示用字符串替换,%d
表示用整数替换,有几个%?
占位符,后面就跟几个变量或者值,顺序要对应好。如果只有一个%?
,括号可以省略。
r = (s2-s1)/s1 * 100
print('相比去年,小明成绩提升了 %.1f%%' % r)
相比去年,小明成绩提升了 18.1%