一、 Python的算术运算
Python的算术运算符与C语言类似,略有不同。包括加(+)、减(-)、乘(*)、除(/)、取余(%)、按位或(|)、按位与(&)、按位求补(~)、左移位(<<)、右移位(>>)、单目求反(-)、幂运算(**)、整除运算(//)、增强运算、增强矩阵乘法(@)。
增强运算是将算术运算符或逻辑运算符放到等号的左侧,与C语言的增强运算符相同。如x+=5,表示x=x+5,该种方法CPU的处理效率高于普通运算方式,且执行优先级也高些。
下面看看这些运算的例子,大家可以理解一下:
>>> 10%3 1 >>> 10//3 3 >>> 10**3 1000 >>> n=False >>> n False >>> type(n) <class 'bool'> >>> i=0 >>> i==n True >>> 4>>2 1 >>> 4<<2 16 >>> ~4 -5 >>> 2&4 0 >>> 2|4 6 >>> m=2 >>> m**=3 >>> m 8
二、 Python的布尔类型
在介绍比较急逻辑运算之前,需要介绍一个前面没有介绍的bool(布尔)数据类型。
布尔数据类型是用于条件判断、比较运算和逻辑运算,只有两个值真(True)和假(False)。布尔类型其实是int的子类,False和True对应的值是0和1。但真正使用时,下面的值都将被视为假:
False None 0 “” () [] {}
也就是说标准值False和None、各种类型(包括浮点数、复数等)的数值0、空序列(如空字符串、空元组和空列表)以及空映射(如空字典)都被视为假,而其他各种值都被视为真。
看看下面的运算结果:
>>> True == 1 True >>> False == 0 True >>> True + True 2
三、 比较运算
比较运算表达式 解释
x==y x是否等于y
x>y x是否大于y
x<y x是否小于y
x>=y x是否大于等于y
x<=y x是否小于等于y
x!=y x是否不等于y
x is y x是否和y是同一对象
x is not y x是否和y不是同一对象
x in y x是否是y的元素
x not in y x是否不是y的元素
四、 逻辑运算
逻辑运算与C语言的类似,有逻辑或(or)、逻辑与(and)、逻辑非(not),但没有C语言的简单运算符号||、&&、!。
看看运算实例:
>>> not 2 False >>> not 0 True >>> 2 and 4 4 >>> 2 or 4 2 >>> s='123' >>> s or 2 or 3 '123' >>> 2 and 3 and s '123'
从上面后几个示例看出,逻辑运算符and和or不一定都是返回True或False,or当其中参与运算的数据有个值不为False(包括False、0、空等,下同)则直接返回该数据,and当所有数据都不为False则返回最后一个数据。