4.7. 运算

在python中,经常用到的运算符有算术运算、关系运算、赋值运算、逻辑运算、成员运算,除此之外还有位运算,但用到的并不多,就不再讲解了

4.7.1. 算术运算

算术运算就是我们数学上的加(+)、减(-)、乘(*)、除(/)、取模(%)、幂(**),加减乘比较简单就不再说了

这里的除比较特别,如果是两个整数相除,得到了是商的整数部分,如:

In [1]: 5/3
Out[1]: 1

In [2]: 5/2
Out[2]: 2

但是除数与被除数如果其中有一个为小数,得到的就是准确结果:

In [3]: 5/3.0
Out[3]: 1.6666666666666667

In [4]: 5/2.0
Out[4]: 2.5

In [5]: 5.0/2.0
Out[5]: 2.5

所以做运算时,如果需要准确结果,可以把其中一个转为小数:

In [6]: 5 / float(2)
Out[6]: 2.5

取模

取模就是获取余数部分,例如5除以2,商2余1,取模结果就是1:

In [7]: 5 % 2
Out[7]: 1

In [8]: 5.0 % 2
Out[8]: 1.0

幂就是乘方,如果2的3次幂,即2的3次方,2*2*2:

In [9]: 2**3
Out[9]: 8

In [10]: 10**3
Out[10]: 1000

4.7.2. 关系运算

即判断运算符两边的表达式的关系,如大于,小于,不等于,返回布尔类型, TrueFalse

In [12]: 1 > 2
Out[12]: False

In [13]: 1 == 2
Out[13]: False

In [14]: 1 < 2
Out[14]: True

In [15]: 1 != 2
Out[15]: True

In [16]: 1 <= 2
Out[16]: True

In [17]: 2 >= 1
Out[17]: True

4.7.3. 逻辑运算

逻辑运算就是我们高中数学里的与(and)、或(or)、非(not),表达式即可以是布尔类型,也可以不是,在python中, None空字符串空字典数字0 在进行逻辑运算时都会被当做 False

  • 使用与的时候,从左向右运算,如果第一个为假,则返回第一个值,不再进行第二个运算,如果第一个为真,则返回第二个值:

    In [34]: 0 and 1
    Out[34]: 0
    
    In [35]: 1 and 2
    Out[35]: 2
    
    In [36]: [] and 1
    Out[36]: []
    
    In [37]: '' and 1
    Out[37]: ''
    
  • 使用或的时候,第一个为真时,则返回第一个值,不再进行第二个值运算,第一个为假时,返回第二个值:

    In [44]: 1 or 0
    Out[44]: 1
    
    In [45]: 1 or a
    Out[45]: 1
    
    In [46]: 0 or 1
    Out[46]: 1
    
    In [47]: 0 or a
    ---------------------------------------------------------------------------
    NameError                                 Traceback (most recent call last)
    <ipython-input-47-1585eb30ceed> in <module>()
    ----> 1 0 or a
    
    NameError: name 'a' is not defined
    
  • 使用非的时候,返回表达式的相反的布尔值:

    In [51]: not True
    Out[51]: False
    
    In [52]: not False
    Out[52]: True
    
    In [53]: not 1
    Out[53]: False
    
    In [54]: not 0
    Out[54]: True
    
    In [55]: not []
    Out[55]: True
    
    In [56]: not ''
    Out[56]: True
    

4.7.4. 成员运算

判断一个元素是不是在另外一个序列里,序列是指一系列元素,可以是列表、元组、字典以及类似对象,最后返回布尔类型, TrueFalse

In [26]: 1 in [1, 2]
Out[26]: True

In [27]: 3 in [1, 2]
Out[27]: False

In [28]: 3 not in [1, 2]
Out[28]: True

In [29]: 'a' in {'a': 1}
Out[29]: True