1. 程式人生 > 其它 >串列埠通訊控制器的Verilog HDL實現(二) 波特率發生器模組

串列埠通訊控制器的Verilog HDL實現(二) 波特率發生器模組

今天開始講解Python的運算子,這一節比較簡單,知識點不多。

上文回顧

今天回顧一下昨天的文章主要講了哪些知識點:

  1. Python是一門動態的強型別語言;
  2. 變數沒有型別,而變數指向的物件才有型別;
  3. 賦值意味著建立了新的物件(不過Python直譯器會快取小的數字及小的字串);
  4. 變數、物件、引用之間的關係。

Python運算子

運算子是有優先順序的,我們先看看其優先順序:運算子的優先順序,

1 + 2 * 3
7
2 * 3 ** 2
18

# 算術運算子優先順序高於比較運算子
2 * 3 > 1 + 2
True

# 比較運算子的優先順序高於邏輯運算子
2 * 3 > 1 + 2 and True
True

(2 * 3 > 1 + 2) and True
True

當我們對運算子的優先順序不是很確定的時候,可以使用小括號。

算術運算子

算術運算子通常只針對數值型別。注意與Python2的區別。

自然除,

>>> 3 / 5
0.6

整除,

>>> 3 // 5
0

邏輯運算子

參與邏輯運算的成員只能是bool型別,或者可以隱式轉化為bool型別的型別。

and需要運算子兩邊都是True結果才為True。

>>> True and True
True

or只要運算子兩邊任意一個為True,結果就為True,

>>> True or False
True

短路,

>>> not True
False

看一個例子,

def add(x, y):
    print('{0} + {1}'.format(x, y))
    return x + y

add(1, 3)
1 + 3
4

add(1, 3) > add(1, 2) and (2, 4) < add(3, 4)
1 + 3
1 + 2
2 + 4
3 + 4
True
    
# 邏輯運算總是從左到右計算,一旦能夠決定表示式最終的值,將立刻停止計算,
# 並返回
add(1, 3) < add(1, 2) and (2, 4) < add(3, 4)
1 + 3
1 + 2
False

add(1, 3) > add(1, 2) or add(2, 4) < add(3, 4)
1 + 3
1 + 2
True

比較運算子

  1. 相等 ==
  2. 不等於!=
  3. 大於 >
  4. 大於等於 >=
  5. 小於 <
  6. 小於等於 <=

幾個例子,

1 == 1
True

1 == 2
False

1 != 2
True

1 > 2
False

2 > 1
True

2 >= 1
True

2 >= 2
True

除了==!=,兩邊的型別相同。

位運算子

# 按位與
bin(60)
'0b111100'
# 0011 1100
bin(12)
'0b1100'
# 0000 1100
60 & 12
12

# 按位或
60 | 12
60
# 按位異或
# 相同為0,不同為1
60 ^ 12
48

# 取反
~60
-61

# 右移
60 >> 2
15

# 左移
60 << 2
240

成員運算子

用於判斷一個元素是否在容器中。

  1. in
  2. not in

一個簡單的例子:

>>> L1 = [1, 2, 3]
>>> 1 in L1
True
>>> s = 'spam'
>>> 'a' in s
True
>>> 'x' in s
False
>>> 'x' not in s
True

其他運算子

  1. 賦值
a = 1
a = 3 + 4
# 左邊是一個識別符號,右邊是一個值(或者可以計算為一個值)
# 讓這個識別符號指向這個值所的記憶體

本文總結

今天的內容比較簡單,概括一下主要講解了:

  • 算術運算子
  • 邏輯運算子
  • 比較運算子
  • 位運算子
  • 成員運算子
  • 其他運算子

明天會繼續講解,講解的內容為流程控制