本文來自異想之旅公開發布的Python教程,原文地址:https://www.yuque.com/yxzl/python
通常情況下,邏輯運算返回的值是布爾(bool)類型。
我們可以對數字進行大小判斷:
a = 1
b = 1.0
c = 3.14
print(a == b) # 判斷a和b是否相等,輸出:True
print(a != c) # 判斷a和b是否不相等,輸出:True
print(a < c) # 判斷a是否小於c,輸出:True
print(a > c) # 判斷a是否大於c,輸出:False
print(a <= b) # 判斷a是否小於等於b,輸出:True
print(b <= c) # 判斷b是否小於等於c,輸出:True
由上例可得:
int
和 float
不影響數值大小的比較==
而非 =
,因為 =
在 Python 中已經被變量賦值操作使用下面是一個簡單的示例,用於判斷兩個字符串的內容是否相同:
print("HelloWorld" == 'HelloWorld') # True
print('Hello' != "Hello") # False
更多的時候,我們通過字符串的 .isxxx()
方法來對其的值進行一些判斷校驗,具體可參考 1.5 章節的“字符串方法”部分。
a, b = 5, 10 # 一個Python風格的多變量賦值語句,記一下就好
print(a > b) # False
print(not a > b) # True
針對有其它編程語言基礎者:
not
就相當於其它編程語言中的!
not
語句可以將一個布爾值取反操作。
print(not 0) # True
print(not '123') # False
print(not 3.14) # False
not
也可以直接處理一個其它數據類型,具體操作是先將其強制轉換為 bool
類型,然後再取反。
關於其它數據類型強制轉換為 bool
後值為多少的問題,詳見 1.2 章節的 例 04 。
除了大小之外,一個元素與一個序列的關系也是邏輯運算的重要部分。這麼說比較抽象,我們來看兩個例子。
a = [1, 2, 3, 4]
print(1 in a) # True
print(5 in a) # False
a = 'ABCDEFG'
print('DEF' in a) # True
print('FGH' in a) # False
print(not 'HIJ' in a) # True
print('HIJ' not in a) # True
由此例中可以看到, not
語句可以與其它語句組合使用。不僅可以如第五行這樣放在整個邏輯運算語句前面,也可以像第六行這樣直接組合成 not in
,使邏輯更清晰。
分別表示“與”(同時成立)和“或”(成立至少一個),也非常好理解,直接上代碼
print(1 < 2 and 2 < 3) # True
print(1 < 2 and 3 < 2) # False
print(1 < 2 or 3 < 2) # True
print(1 < 2 or 3 < 2 and 4 < 5) # True
“搭配數值”本質上和“搭配邏輯運算”的原理是一樣的。and
和or
並非返回bool
類型,而是返回最後一個(and
語句)或第一個(or
語句)在bool
類型下為True
的數據的實際值。
print('Hello' and 'World') # World
print('Hello' or 'World') # Hello
print('' or 1) # 1
更多類似的例子可以自己嘗試。
大多數數值運算 > 大小判斷 > not
> and
or
(具體請見 1.3 章節末尾的圖片)
如果需要改變順序,與數值運算相同,請使用小括號。