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