Hi 大家好,
今天要開始介紹基礎語法中的布林值篇,那我們開始吧!
生活中所謂「真」「假」、「開」「關」或「有」「沒有」等等這些非黑即白的狀態,在Python中會以True
和False
來表示,要特別注意這兩個字的開頭都要大寫
,跟其它程式語言的規範不太一樣。
大寫來表示
>>> True
True
>>> False
False
>>> true_value = True
>>> true_value
True
>>> false_value = False
>>> false_value
False
>>>
使用小寫會被判斷錯誤
>>> true
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'true' is not defined. Did you mean: 'True'?
>>> false
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'false' is not defined. Did you mean: 'False'?
>>> true_value = true
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'true' is not defined. Did you mean: 'True'?
>>> false_value = false
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'false' is not defined. Did you mean: 'False'?
>>>
bool
型別>>> true_value = True
>>> type(true_value)
<class 'bool'>
>>> false_value = False
>>> type(false_value)
<class 'bool'>
>>>
>>> isinstance(True, int)
True
>>> isinstance(False, int)
True
>>>
可以是用簡易判斷方式來證明
=> True 會被轉換成 數字 1
=> False 會被轉換成 數字 0
>>> True == 1
True
>>> True == 0
False
>>> False == 1
False
>>> False == 0
True
>>>
甚至可以拿來做四則運算,但是非常不建議這樣的方式來撰寫
>>> True * 10 - False * 2 + True
11
>>>
bool
是內建型別,不是保留字,可以當作變數的名稱來賦值,但不建議這樣的方式來使用
# 查詢Python的保留字
>>> import keyword
>>> key_list = keyword.kwlist
>>> print(key_list)
['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
>>> False = 999
File "<stdin>", line 1
False = 999
^^^^^
SyntaxError: cannot assign to False
>>> in = 11
File "<stdin>", line 1
in = 11
^^
SyntaxError: invalid syntax
>>>
以下的做法雖然可以做,但是最好不要做,會造成之後的困擾
>>> bool
<class 'bool'>
>>> type(bool)
<class 'type'> <==== 是一種型別
>>> bool = 999
>>> bool
999
>>> type(bool)
<class 'int'> <==== 會被改變成整數型別
>>> print(bool)
999
>>>
使用比較運算
,生成布林值
>>> 5 == 5 <=== `==`等於
True
>>> 5 != 3 <=== `!=`不等於
True
>>> 5 > 3 <=== `>`大於
True
>>> 3 < 5 <=== `<`小於
True
>>> 5 >= 5 <=== `>=`大於等於
True
>>> 3 <= 5 <=== `<=`小於等於
True
>>>
使用邏輯運算
,生成布林值
>>> True and True
True
>>> True or True
True
>>> not True
False
>>>
如果是在執行and
運算,當第一個值是False
,第二個值不管是True
或是False
都不會影響最後結果,直接放棄後面的判斷和執行,直接把結果輸出為False
>>> False and print("hello")
False
>>> False and print(1*2+333)
False
>>> False and print([1, 2, 3, 4])
False
>>> False and True
False
>>> False & True
False
>>>
如果是在執行or
運算,當第一個值是True
,第二個值不管是True
或是False
都不會影響最後結果,同樣也會直接放棄後面的判斷和執行,直接把結果輸出為True
>>> True or print("welcome")
True
>>> True or print(999+1000*111)
True
>>> True or print([87, 76, 65])
True
>>> True or False
True
>>> True | False
True
>>>
那今天就介紹到這裡,我們明天見~