>>> 2 + 2
4
>>> 50 - 5*6
20
>>> (50 - 5*6) / 4
5.0
>>> 8 / 5
1.6
>>> 8 / 4
2.0
Python3中的除法运算总会得到一个浮点值,但是在Python2中不是这样的,Python2会根据参与运算的数字来决定结果,比如:
>>> 8 / 5
1
>>> 8 / 5.0
1.6
>>> 8.0 / 5
1.6
如果想在Python2中使用Python3中的除法特性可以在交互环境中输入from __future__ import divistion
,这句话的意思是从未来的版本中引入除法运算,以后会经常使用from * import *
这样的格式来引入其它功能。再看下面两个三个运算:
>>> 13 // 3
4
>>> 13 % 3
1
>>> 3**2
9
比较特别的是第一行和第三行,两个除号是向下取整,两个乘号是n次方的意思。
在交互模式下,还有一个很有意思的符号_
,它可以保存上一次的运算结果,也就是说如果我们把交互环境当做计算器的话,会更好用。看下面的例子:
>>> tax = 12.5 / 100 # 把值赋给一个名字(变量),以下就可以用变量名来使用值。
>>> price = 100.50
>>> price * tax
12.5625
>>> price + _ # _登场,其值是上面的12.5625
113.0625
>>> round(_, 2) # 结果保留两位小数
113.06
当然如果在Python3中,上面的代码也可以写成:
>>> 税 = 12.5 / 100
>>> 价格 = 100.50
>>> 税 * 价格
>>> 12.5625
Python3中可以使用汉字命名变量,事实上可以使用所有unicode集中的字符,另外Python3中会把税
当作是一个字符,而不再是Python2版本中的两个。为了输入方便和他人理解,我们还是习惯性的使用经典命名(字母数字下划线,且第一个字符不可以是数字)
此外变量的名字应当是有意义的,一个变量名里如果包含多个单词可以使用_
形如:collect_incoming_data
或者“驼峰”命名,形如:createUserInfo
,更多的命名和代码规范目前还不需要,我们介绍到相应代码的时候会给出相应说明。
>>> 3 > 2
Ture
>>> 9 < 5
False
>>> 3 < 5 and 9 > 8
True
>>> 7 > 8 or 4 < 9
True
>>> not 9 > 3
False
>>> 5 == 4
False
>>> 7 != 8
True
and
是逻辑与的意思,or
是逻辑或的意思,not
是逻辑取反的意思。Python还支持链式逻辑运算:
>>> 4 < 10 > 7
True
解释器会把上式转换成4 < 10 and 10 > 7
。
位运算即先把数转换成2进制表示,再按位进行运算。
>>> 5 & 3 # 5:'101', 3:'11'
1
>>> 5 | 2 # 2:'10'
7
>>> 5 ^ 4 # 4:'100'
1
异或运算有一个简单的应用,两数互换值不需要额外空间,代码如下:
>>> a = 5 # 5: '101'
>>> b = 8 # 8:'1000'
>>> a = a^b
>>> b = a^b
>>> a = b^a
>>> a, b
(8, 5) # 这种用括号括里来,逗号分隔的样子叫元组
当然如果仅仅是两数互换值的话,Python中还有更轻松愉悦的写法:
>>> a, b = 5, 8 # 多个变量赋值
>>> a, b = b, a # 同样是多个变量赋值
>>> a, b
(8, 5)
以上三种位运算均满足交换律。