真假值的字面常數 (literal) 包括 True 及 False , True 就是邏輯上的真, False 則是邏輯上的假。
以下在互動式介面輸入 True 就回傳 True ,輸入 False 就回傳 False
>>> True |
True |
>>> False |
False |
那什麼情況會用到真假值呢?需要邏輯結果就需要真假值了,因為程式 (program) 常常需要依條件 (condition) 做選擇,或是執行迴圈 (loop) ,無論選擇或迴圈都需要做條件判斷,所謂條件也就是布林運算,布林運算會得到邏輯結果,邏輯結果就是真假值。
這裡來看看布林運算的例子,布林運算子有 or 、 and 及 not
x = True
y = False
print(x or y)
print(x and y)
print(not x)
#《程式語言教學誌》的範例程式
# http://kaiching.org/
# 檔名:bool01.py
# 功能:示範真假值的運算
# 作者:張凱慶
or 表示中文「或」的意思,因此 x or y 是當 x 或 y 任一個為 True ,結果就會回傳 True , and 表示中文「且」的意思,因此 x and y 是當 x 及 y 兩者皆為 True ,結果才會回傳 True ,最後 not 則是把 x 由 True 變 False ,或是由 False 變 True 。
於命令列執行以上程式,結果如下
$ python3 bool01.py |
True |
False |
False |
$ |
比較運算是布林運算的一種,除了比較數值上的關係外,最底下的 is 及 is not 則是判斷物件是否相同
x = 1
y = 2
print(x < y)
print(x <= y)
print(x > y)
print(x >= y)
print(x == y)
print(x != y)
print(x is y)
print(x is not y)
#《程式語言教學誌》的範例程式
# http://kaiching.org/
# 檔名:bool02.py
# 功能:示範真假值的運算
# 作者:張凱慶
於命令列執行以上程式,結果如下
$ python3 bool02.py |
True |
True |
False |
False |
False |
True |
False |
True |
$ |
判斷序列 (sequence) 元素有無也是布林運算的一種, in 會回傳存在的情況, not in 則會回傳不存在的情況,注意 for 迴圈就是採取 for-in 的計算,差別是 for 可以依序取得每個元素
y = [1, 2, 3]
x = 2
print(x in y)
print(x not in y)
#《程式語言教學誌》的範例程式
# http://kaiching.org/
# 檔名:bool03.py
# 功能:示範真假值的運算
# 作者:張凱慶
於命令列執行以上程式,結果如下
$ python3 bool03.py |
True |
False |
$ |
if 後的條件,這裡用英文字 condition1 帶入,條件也是需要布林運算的地方,可能是任何的布林運算
condition1 = False
condition2 = False
if condition1:
pass
elif condition2:
pass
else:
print("Nothing happened.")
#《程式語言教學誌》的範例程式
# http://kaiching.org/
# 檔名:bool04.py
# 功能:示範真假值的運算
# 作者:張凱慶
如果 if 後面的 condition1 回傳 False ,直譯器就會再去計算 elif 後面的 condition2 ,直到計算出回傳 True 的條件為止,如果條件都為假,程式就會執行 else 的部分。
於命令列執行以上程式,結果如下
$ python3 bool04.py |
Nothing happened. |
$ |
while 迴圈也需要用到條件,這裡同樣用英文字 condition 帶入,當 condition 為 True 的時候,迴圈才會繼續進行,而當 condition 為 False 的時候,迴圈就會結束
condition = True
while condition:
condition = False
print("After the while loop...")
#《程式語言教學誌》的範例程式
# http://kaiching.org/
# 檔名:bool05.py
# 功能:示範真假值的運算
# 作者:張凱慶
於命令列執行以上程式,結果如下
$ python3 bool05.py |
After the while loop... |
$ |
相關教學影片