串列埠通訊控制器的Verilog HDL實現(二) 波特率發生器模組
阿新 • • 發佈:2022-04-28
今天開始講解Python的運算子,這一節比較簡單,知識點不多。
上文回顧
今天回顧一下昨天的文章主要講了哪些知識點:
- Python是一門動態的強型別語言;
- 變數沒有型別,而變數指向的物件才有型別;
- 賦值意味著建立了新的物件(不過Python直譯器會快取小的數字及小的字串);
- 變數、物件、引用之間的關係。
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 == 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
成員運算子
用於判斷一個元素是否在容器中。
in
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
其他運算子
- 賦值
a = 1
a = 3 + 4
# 左邊是一個識別符號,右邊是一個值(或者可以計算為一個值)
# 讓這個識別符號指向這個值所的記憶體
本文總結
今天的內容比較簡單,概括一下主要講解了:
- 算術運算子
- 邏輯運算子
- 比較運算子
- 位運算子
- 成員運算子
- 其他運算子
明天會繼續講解,講解的內容為流程控制