1. 程式人生 > >05-Python運算子

05-Python運算子

算術運算子

+ 加法運算子
- 減法運算子
* 乘法運算子
** 冪運算子
/ 除法運算子
// 整除運算子
% 求模運算子
= 賦值運算子
  a = 10
  b = a + c
  a, b, c = 10, 20, 30
  鏈式賦值
   a = b = c = 3

注意

除以0
優先順序問題
  ()使用
整除和求餘的應用場景
  行列

複合運算子

+=
-=
*=
%=
**=
//=
a
  a  x= 值
  a = a x 值

比較運算子

>
<
!=
<>  
  Python2.x版本支援
  等同於!=
  以後統一使用!=表示不等於
>=
<=
==
is 比對唯一標識
鏈狀比較運算子    10 < a <=66

注意

整型比對
  ==
  is

案例
  256    True   True
  257    True   False

解答:
  出於對效能的考慮,
  Python內部做了很多的優化工作,
  對於整數物件,Python把一些頻繁使用的整數物件快取起來,
  儲存到一個叫small_ints的連結串列中,
  在Python的整個生命週期內,
  任何需要引用這些整數物件的地方,
  都不再重新建立新的物件,
  而是直接引用快取中的物件。
  Python把這些可能頻繁使用的整數物件規定在範圍[-5, 256]之間的            
  小物件放在small_ints中,
  但凡是需要用些小整數時,就從這裡面取,
  不再去臨時建立新的物件。
  因為257不再小整數範圍內,
  因此儘管a和b的值是一樣,
  但是他們在Python內部卻是以兩個獨立的物件存在的,各自為政,互不干涉。

  Python內部為了將效能進一步的提高,
  凡是在一個程式碼塊中建立的整數物件,
  如果存在一個值與其相同的物件於該程式碼塊中了,
  那麼就直接引用,
  否則建立一個新的物件出來。
  Python出於對效能的考慮,
  但凡是不可變物件,在同一個程式碼塊中的物件,
  只有是值相同的物件,
  就不會重複建立,而是直接引用已經存在的物件。
  因此,不僅是整數物件,還有字串物件也遵循同樣的原則。
  所以 a is b就理所當然的返回True了,
  而c和a不在同一個程式碼塊中,因此在Python內部建立了兩個值都是 257的物件。

邏輯運算子

not
非
取反
    真的變假
    假的變真
and
    與
    一假全假
or
    或
    一真全真

注意

非布林型別的值, 如果作為真假來判定, 一般都是非零即真, 非空即真
整個邏輯表示式的結果不一定只是True和False

學習地址:

撩課-Python大資料+人工智慧1
撩課-Python大資料+人工智慧2
撩課-Python大資料+人工智慧3
撩課-Python大資料+人工智慧4
撩課-Python大資料+人工智慧5
撩課-Python大資料+人工智慧6
撩課-Python-GUI程式設計-PyQt5