03-02python運算符

運算符

算術運算符

運算符 描述 實測
+ 加:兩個對象相加 1+1=3
- 減:第一個數減去第二個數 1-1=0
* 乘;兩個對象相乘 1*1=1
/ 除;第一個數除以第二個數 1/1=1
** 冪:返回x的y此冪 10**20 10的20次方
// 取整除:返回商的整數部分 9//2=4.5取整就是4
% 取模:返回除法的餘數 9%2=4.5無法整除返回爲1
9.2%2=1.1999999999999993詳情參考Python中的取模運算

算術運算符只能對int和float做運算
自然除就是我們正常理解的數學計算,取整除是取結果的整數部分
在python3中,所有的除法都是自然除,返回的都是float;python2中的除法都是取整除,返回的都是int

例7:運算
In [22]: 1 + 1
Out[22]: 2

In [23]: 1 + 1.2    # 會隱式轉換爲float進行計算
Out[23]: 2.2

In [24]: type(1 + 1.2)
Out[24]: float

例8:python2與python3除法區別
In [25]: 3 / 2   # python3自然除
Out[25]: 1.5
>>> 3 / 2        # python2整除
1

>>> float(3) / 2   # python2中自然除的方法
1.5

>>> 5.0 / 2    # python2中自然除的方法
2.5

例9:python3的除法,返回全部都是float
In [27]: type(4/2)                                                                                                                                                               
Out[27]: float

比較運算符

  • >:大於
  • <:小於
  • ==:等於
  • !=:不等於,python2中有<>不等於的寫法,但是在python3中已廢棄
  • >=:大於或等於
  • <=:小於或等於

注意:比較運算的返回值都是bool類型

例9:比較運算符
In [27]: 3 > 5
Out[27]: False

In [28]: 5 > 3
Out[28]: True

In [29]: 5 != 3
Out[29]: True

邏輯運算符

  • and:與
  • or:或
  • not:非

邏輯運算符的操作數都是bool類型或者可以隱式轉換成bool類型的類型,返回值都是bool類型

例10:邏輯運算符
    邏輯運算符的操作數都是bool類型或者可以隱式轉換成bool類型的類型,返回值都是bool類型

    In [30]: True and False    # 雙方都必須爲真
    Out[30]: False

    In [31]: True or False    # 需要一方爲真就返回True
    Out[31]: True

例11:邏輯運算符經常用作短路操作; 短路操作基本不會用到not
    In [32]: def true():
        ...:     print('true')
        ...:     return True
        ...: def false():
        ...:     print('false')
        ...:     return False
        ...:
    # or當第一個爲真後面的就不執行了, 如果第一個爲False則會繼續執行後面的,如果都執行失敗,則返回Flase, 但只要一個成功就返回True
    In [29]: true() or false()                                                                                                                                           
    true
    Out[29]: True

    In [30]: false() or true()                                                                                                                                                       
    false
    true
    Out[30]: True

    In [34]: true() and true()        # and指定前面爲true然後繼續執行後面的, 如果都爲true, 就返回true
    true
    true
    Out[34]: True

    In [36]: true() and false()    # and先執行第一個函數返回爲true,繼續執行第二個函數, 如果第二個函數爲false就返回false
    true
    false
    Out[36]: False

    In [37]: false() and true()
    false
    Out[37]: False

    該例子可以拆分兩個部分:
        1、是否執行了
        2、返回的結果

    短路操作:從左到右執行, 當已經有結果的時候, 將停止計算, 提前返回
        也就是說, 當判斷式已經確定時, 不再繼續處理後續表達式。 && 在失敗時中斷, ||在成功時中斷。

例12:邏輯計算
    # 0爲false
    # 整數都爲true
    # None爲false
    * 空列表、空元組等都是false
    In [32]: bool(0)                                                                                                                                                                 
    Out[32]: False

    In [33]: bool(2)                                                                                                                                                                 
    Out[33]: True

    In [35]: bool(None)                                                                                                                                                               
    Out[35]: False


    In [38]: 0 and 1
    Out[38]: 0

    In [39]: 0 and True
    Out[39]: 0

    In [40]: None and True

    In [41]: True and None

    In [42]: 1 and True
    Out[42]: True

成員運算符

和集合類型相關,在集合類型時會介紹

身份運算符

和麪向對象相關,在面向對象時會介紹

位運算符

  • <<:左移
  • >>:右移
  • &:按位與
  • |:按位或
  • ^:按位取反
    一般用在網絡底層開發中,用的非常少
    位運算符是直接操作二進制的

運算符優先級(當運算符在一起運算時)

  • 乘法運算比取模運算優先級要高
  • 算術運算 > 比較運算 > 邏輯運算
    • 可以通過括號改變優先級,所以一般不確定的要其優先級高則直接用括號
  • 拿不準或者表達式比較複雜的適合,直接使用括號來決定優先級
例13:運算符的優先級
    In [43]: 3 + 1 * 4
    Out[43]: 7

    In [44]: 3 * 4 ** 2
    Out[44]: 48

    In [45]: 3 * 4 % 3    # 乘法運算比取模運算優先級要高
    Out[45]: 0

    In [50]: 3 - 4 % 2
    Out[50]: 3

例14:比較運算與邏輯運算
    In [51]: 3 > 5 and 5 > 3
    Out[51]: False

    In [52]: 3 + 6 > 7
    Out[52]: True

    算術運算 > 比較運算 > 邏輯運算
    可以通過括號改變優先級

賦值運算符(比較特殊)

上述運算符都會返回結果,而賦值運算符是不會返回結果的
**參考如下實例,一句話概括賦值運算符:把右邊計算的結果賦值給左邊
賦值運算符是可以和算數運算符一起使用的

例15:賦值運算,把右邊的值賦給左邊,如果右邊是個表達式,它會進行計算
    In [53]: i = 3 + 58

    In [54]: i
    Out[54]: 61

    In [55]: i /= 5

    In [56]: i
    Out[56]: 12.2

例16:賦值運算符和算數運算符一起使用
    In [36]: i = 8                                                                                                                                                                   

    In [37]: i += 3                                                                                                                                                                  

    In [39]: i                                                                                                                                                                       
    Out[39]: 11
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章