iT邦幫忙

2024 iThome 鐵人賽

DAY 10
1
自我挑戰組

每日挑戰:從零開始的 Python 學習之旅系列 第 10

【Day 10】基礎語法 - 布林值篇

  • 分享至 

  • xImage
  •  

Hi 大家好,

今天要開始介紹基礎語法中的布林值篇,那我們開始吧!

 生活中所謂「真」「假」、「開」「關」或「有」「沒有」等等這些非黑即白的狀態,在Python中會以TrueFalse來表示,要特別注意這兩個字的開頭都要大寫,跟其它程式語言的規範不太一樣。

布林值基礎

  1. 建立布林值
    要使用大寫來表示
>>> 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'?
>>>
  1. 檢查布林值型別
    由此可以知道這兩個都是bool型別
>>> true_value = True
>>> type(true_value)
<class 'bool'>
>>> false_value = False
>>> type(false_value)
<class 'bool'>
>>>
  1. 也可以當作是一種「數字」
    使用Python內建函數isinstance()來證明
>>> 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
>>>
  1. 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
>>>

邏輯短路(short)

如果是在執行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
>>>

那今天就介紹到這裡,我們明天見~


上一篇
【Day 9】基礎語法 - 字典篇
下一篇
【Day 11】基礎語法 - 函數基礎篇
系列文
每日挑戰:從零開始的 Python 學習之旅30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言