布林值 (Boolean) 是一種用在邏輯判斷上的數值,布林值只有兩種:True
與 False
。布林值會發生於各種判斷式:
>>> n = 8
>>> n % 2 == 0
True
布林值可以直接指定給一個變數:
b = True
布林值也可以當作函式的回傳值:
def hello():
return True
hello()
有了布林值之後,就可以來進行邏輯運算。
邏輯運算經常用來串接條件判斷,例如判斷兩個條件是否同時成立?兩個條件是否至少一個成立?或者某個條件是否不成立?
and
代表「且」,在 and
左右兩邊的條件式都必須成立,整個 and
邏輯運算才會成立,例如:
>>> def hello_and(a, b):
>>> if a == 3 and b == 5:
>>> print(a, b, "成立!")
>>> else:
>>> print(a, b, "不成立!")
>>>
>>> hello_and(3, 5)
>>> hello_and(4, 5)
3 5 成立!
4 5 不成立!
在 hello_and()
函式裡面,會去判斷變數 a
是否為 3,而且變數 b
是否為 5,如果兩個條件都成立,就會輸出「成立!」;只要有一個變數不符合條件,就會輸出「不成立!」。
or
代表「或」,在 or
左右兩邊的條件式,只要有一個成立,整個 or
邏輯運算就會成立:
>>> def hello_or(a, b):
>>> if a == 3 or b == 5:
>>> print(a, b, "成立!")
>>> else:
>>> print(a, b, "不成立!")
>>>
>>> hello_or(3, 5)
>>> hello_or(4, 5)
>>> hello_or(4, 6)
3 5 成立!
4 5 成立!
4 6 不成立!
在 hello_or()
函式裡面,同樣判斷 a
與 b
兩變數,但是因為用 or
連接,所以只要有一個變數符合條件,就會輸出「成立!」;只有在兩個變數都不符合條件時,才會輸出「不成立!」。
not
代表「非」,not
並不用來連接兩個條件式,只會單純作用在一個布林值上面,例如:
>>> b = True
>>> not b
False
可以撰寫函式如下:
>>> def hello_not(a):
>>> if not a == 3:
>>> print(a, "不是 3!")
>>> else:
>>> print(a, "是 3!")
>>>
>>> hello_not(2)
>>> hello_not(3)
>>> hello_not(4)
2 不是 3!
3 是 3!
4 不是 3!
在 hello_not()
函式裡面,會去判斷 a == 3
是否不成立,只有當此條件式不成立時,才會走進 if
的第一個區塊,並輸出「不是 3!」,因此傳入任何不是 3 的參數,都可以獲得「不是 3!」的輸出。
input()
判斷使用者輸入的數值是否為 7,若為 7 則回傳 True
,若不為 7 則回傳 False
。while
迴圈不斷接收使用者輸入,直到輸入 7 為止再結束迴圈。a
跟 b
,用 while
迴圈判斷使用者輸入的是否都為奇數。完整的程式碼放在此 Colab 裡面供各位參考。