程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

1.8 邏輯運算(Python)

編輯:Python

本文來自異想之旅公開發布的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

由上例可得:

  • 數據類型 intfloat 不影響數值大小的比較
  • 判斷是否相等使用 == 而非 = ,因為 = 在 Python 中已經被變量賦值操作使用

字符串判斷

下面是一個簡單的示例,用於判斷兩個字符串的內容是否相同:

print("HelloWorld" == 'HelloWorld') # True
print('Hello' != "Hello") # False

更多的時候,我們通過字符串的 .isxxx() 方法來對其的值進行一些判斷校驗,具體可參考 1.5 章節的“字符串方法”部分。

not 取反

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 ,使邏輯更清晰。

and 和 or

搭配邏輯運算

分別表示“與”(同時成立)和“或”(成立至少一個),也非常好理解,直接上代碼

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

搭配數值

“搭配數值”本質上和“搭配邏輯運算”的原理是一樣的。andor並非返回bool類型,而是返回最後一個(and語句)或第一個(or語句)在bool類型下為True的數據的實際值

print('Hello' and 'World') # World
print('Hello' or 'World') # Hello
print('' or 1) # 1

更多類似的例子可以自己嘗試。

運算優先級問題

大多數數值運算 > 大小判斷 > not > andor(具體請見 1.3 章節末尾的圖片)

如果需要改變順序,與數值運算相同,請使用小括號。


  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved