0.规范化
使用Ctrl+Alt+L可以将代码排列格式更加规范化
1.浮点数
1.23x109就是1.23e9或者
12.3e8;
0.000012可以写成1.2e-5
2.字符串
1 >>>"I'm OK" 2 I'm OK 3 4 >>>'I\'m \"OK\"!' 5 I'm "OK"!
注:\表示后面的一个字符需要转义
3.除法
1 >>> 10 / 3 2 3.3333333333333335
/
除法计算结果是浮点数,即使是两个整数恰好整除,结果也是浮点数:
1 >>> 9 / 3 2 3.0
还有一种除法是//
,称为地板除,两个整数的除法仍然是整数:
1 >>> 10 // 3 2 3
你没有看错,整数的地板除//
永远是整数,即使除不尽。要做精确的除法,使用/
就可以
4.缩进
当语句以冒号:
结尾时,缩进的语句视为代码块。
5.编码转换
提供了ord()和chr()函数,可以把字母和对应的数字相互转换:
1 >>> ord('A') 2 65 3 4 >>> chr(65) 5 'A'
在计算机内存中,统一使用Unicode编码,当需要保存到硬盘或者需要传输的时候,就转换为UTF-8编码。
由于Python的字符串类型是str
,在内存中以Unicode表示,一个字符对应若干个字节。如果要在网络上传输,或者保存到磁盘上,就需要把str
变为以字节为单位的bytes
。
Python对bytes
类型的数据用带b
前缀的单引号或双引号表示:x = b'ABC'
要注意区分'ABC'
和b'ABC'
,前者是str
,后者虽然内容显示得和前者一样,但bytes
的每个字符都只占用一个字节。
如果要在网络上传输,或者保存到磁盘上,就需要把str
变为以字节为单位的bytes
。
以Unicode表示的str
通过encode()
方法可以编码为指定的bytes
,例如:
1 >>> 'ABC'.encode('ascii') 2 b'ABC' 3 4 >>> '中文'.encode('utf-8') 5 b'\xe4\xb8\xad\xe6\x96\x87'
对于通过request获取的unicode值,可以进行以下操作:
1 u = u'100.12' 2 print type(u) # unicode 3 i = int(float(u)/10) 4 print i # 10 5 # print int(int(u)/10) # 错误 6 7 8 # unicode转utf-8 9 u = u'100.12' 10 u1 = u.encode('utf-8') 11 print type(u1) # str 12 u2 = int(float(u1)) 13 print type(u2) # int
从网络或磁盘上读取了字节流,那么读到的数据就是
bytes
。要把bytes
变为str
,就需要用decode()
方法:
1 >>> b'ABC'.decode('ascii') 2 'ABC' 3 4 >>> b'\xe4\xb8\xad\xe6\x96\x87'.decode('utf-8') 5 '中文'
6.计算字符长度
要计算str
包含多少个字符,可以用len()
函数:
1 >>> len('ABC') 2 3 3 >>> len('中文') 4 2
len()
函数计算的是str
的字符数,如果换成bytes
,len()
函数就计算字节数:
1 >>> len(b'ABC') 2 3 3 4 >>> len(b'\xe4\xb8\xad\xe6\x96\x87') 5 6 6 7 >>> len('中文'.encode('utf-8')) 8 6
7.格式化
1 >>>'Hi, %s, you have $%d.' % ('Michael', 1000000) 2 3 'Hi, Michael, you have $1000000.'
%d 整数 %f 浮点
%s 字符串 %x 十六进制整数
注:%%
来表示一个%.
8.输入
1 >>>name = raw_input('please input your name:') 2 dragon 3 >>>name 4 dragon
注:在python3中变更为input().