Python入門(五):Python常用操作運算子

陳陳陳Chann發表於2020-09-23

1. 算術運算子

運算子用於在表示式中對一個或多個運算元進行計算並返回結果值

運算子功能說明
+算術加法,列表、元組、字串合併與連線,正號
-算術減法,集合差集,相反數
*算術乘法,序列重複
/真除法
//求整商
%求餘數
**冪運算
  • + 運算子

    • +運算子除了用於算術加法以外,還可用於列表、元組、字串的連線
    print('abc' + 'def')    # abcdef
    print([1, 2] + [3, 4])  # [1, 2, 3, 4]
    print((1, 2) + (3,))    # (1, 2, 3)
    
    • 整數可以有無數位,但是浮點數只能包括小數點在內前後共18位,即17個數字+1個小數點
    a = 123.4567891234567891111111
    b = 123456789123456789123456789.0
    print(a)    # 123.45678912345679
    print(b)    # 1.2345678912345679e+26
    
  • - 運算子

    • -運算子除了用於整數、實數、複數之間的算術減法和相反數之外,還可以計算集合的差集

    • 需要注意的是,在進行實數之間的運算時,有可能會出現誤差

    print(7.9 - 4.5)                # 出現誤差,3.4000000000000004
    print(--3)                      # 3
    print({1, 2, 3} - {3, 4, 5})    # {1, 2}
    print({3, 4, 5} - {1, 2, 3})    # {4, 5}
    
  • *運算子

    • *運算子除了表示整數、實數、複數之間的算術乘法,還可用於列表、元組、字串這幾個型別的物件與整數的乘法,表示序列元素的重複,生成新的列表、元組或字串
    print((3 + 4j) * (5 + 6j))      # (-9+38j)
    print('重要的事情說三遍!' * 3)    # 重要的事情說三遍!重要的事情說三遍!重要的事情說三遍!
    print([0] * 5)                  # [0, 0, 0, 0, 0]
    print((0,) * 3)                 # (0, 0, 0)
    
  • / 和 // 運算子

    • 在Python中分別表示真除法和求整商。在使用時,要特別注意整除運算子//“向下取整” 的特點

      • 例如,-17/4的結果是-4.25,在數軸上小於-4.25的最大整數是-5,所以-17//4的結果是-5
      print(17 / 4)       # 4.25
      print(17 // 4)      # 4
      print(-17 / 4)      # -4.25
      print(-17 // 4)     # -5
      
  • % 運算子

    • %運算子可以用於求餘數運算,還可以用於字串格式化。在計算餘數時,結果與%右側的運算數符號一致
    print(365 % 7)                      # 1
    print(365 % -7)                     # -6
    print(-365 % 7)						# 6
    print(-365 % -7)					# -1
    print('%c, %c, %c' % (65, 97, 48))  # A, a, 0
    
  • ** 運算子

    • **運算子表示冪運算

    • 該運算子具有右結合性,如果有2個連續的**運算子,那麼先計算右邊的再計算左邊的,除非使用圓括號明確修改表示式的計算順序

    print(2 ** 3 ** 2)  # = 2**9 = 512
    print(9 ** 0.5)     # 得到浮點數3.0
    print((-1) ** 0.5)  # 得到複數(6.123233995736766e-17+1j)
    

2. 比較運算子

  • 數值比較,字元比較(字元比較時,比較ASCII)
  • 比較結果返回True,False
運算子功能說明
<、<=、>、>=、==、!=(值)大小比較,集合的包含關係比較
print(3 + 2 < 7 + 8)                    # 關係運算子優先順序低於算術運算子,True
print(3 < 5 > 2)                        # 等價於3<5 and 5>2,True
print(3 == 3 < 5)                       # 等價於3==3 and 3<5,True
print('12345' > '23456')                # 第一個字元'1'<'2',直接得出結論,False
print('abcd' > 'Abcd')                  # 第一個字元'a'>'A',直接得出結論,True
print([85, 92, 73, 84] < [91, 82, 73])  # 第一個數字85<91,直接得出結論,True
print([180, 90, 101] > [180, 90, 99])   # 前兩個數字相等,第三個數字101>99,True
print({1, 2, 3, 4} <= {3, 4, 5})        # 比較是否為包含關係,False
print([1, 2, 3, 4] > [1, 2, 3])         # 前三個元素相等,並且第一個列表有多餘元素,True

3. 賦值運算子

  • 用於對變數的賦值和更新
運算子功能說明
+=、-=、*=、/=、%=、**=、//=a+=b等效於a=a+b、a%=b等效於a=a%b…
  • a = a + 3 或 a += 3

    001

4. 邏輯運算子

運算子功能說明
and、or、not邏輯與、邏輯或、邏輯非
  • 在不加括號時候, and優先順序大於or

  • or 計演算法則

    • 如果or左邊的為真,那麼就返回or左邊的那個值,如果or左邊為假,繼續匹配or右邊的引數

    • 例如

      print(False or 1)   # 1
      print(1 or False)   # 1
      print(True or 1)    # True
      print(1 or True)    # 1
      
  • and 計演算法則

    • and是在布林上下文中從左到右計算表示式的值

    • 0、’’、[]、()、{}、None、False在布林上下文中為假;其它任何東西都為真

    • 如果布林上下文中的某個值為假,則返回第一個假值

    • 所有值都為真,則返回最後一個真值

    • 例如

      print(0 and 1 and 2)    # 0
      print(2 and 3 and 4)    # 4
      print(1 and 0)          # 0
      

5. 成員運算子、身份運算子、按位運算子

運算子功能說明
in、not in成員測試
is、is not測試兩個物件是否為同一個物件的引用
|、^、&、<<、>>、~位或、位異或、位與、左移位、右移位、位求反

相關文章