1. 程式人生 > >邏輯判斷與迴圈——True&False

邏輯判斷與迴圈——True&False

邏輯判斷與迴圈——True&False


判斷與迴圈是程式設計的靈魂,如果要實現一個複雜的功能和程式,判斷與迴圈是必不可少的。
if-ealse是常見的邏輯判斷手段,但在進行邏輯判斷之前,需要了解邏輯判斷的基本準則——布林型別(Boolean Type)

布林型別 (Boolean Type)

布林型別是資料型別中的一種,卻只有兩個 True 和 False(需要注意大小寫,Python對大小寫非常嚴格,大小寫錯誤會導致程式報錯),人類以真假判斷事實,計算機則以0和1判斷,0對應False,1對應True。
任何能夠的返回布林型別的表示式均是布林表示式

在Python終端輸入程式碼會得到:

>>> 1>2   #這就屬於一個表示式,可以返回布林值
False
>>> 1<2
True
>>> 42 != '42'
True
>>> 'Name' = 'name'
False
>>> 'M' = 'Magic'
True
>>> number = 12
>>> number in 12
True

比較運算子

上面程式碼產生的布林值的表達方式不同,我們來講一下這些運算子的的意義和用法

運算子 含義
= 將右邊的值賦給左右邊
== 左右兩邊值相等時返回True
!= 左右兩邊不相等時返回True
> 左右大於右邊時返回True
< 左右小於右邊時返回True
<= 左邊小於或等於右邊時返回True
>= 左右大於或等於右邊時返回Ture

除了上述簡單的數學比較外,當然也可以多條件複雜的比較:

>>> number = 5      #賦值變數
>>> 1 < number <10
Ture

#---------變數的比較-------------
>>> two = 1 + 1
>>> three = 2 + 1
>>> two < three     #進行變數值的比較
True

#---------字串的比較------------
>>> 'Hello World' == 'hello world'
>>> False       #在Python中嚴格區分大小寫,所以這個比較的結果返回False

#---------函式結果的比較-----------
>>> asb(-20) > len('length of the world')
#對兩個函式結果進行比較實際等價於"20 > 19"
#注:asb()是會返回引數的絕對值的函式

比較運算子的注意事項:
不同型別的物件不能用”>,<,<=,>=”進行比較,但可以用”==”和”!=”比較,例如字串和數字之間:

42 > 'the answer'       #無法比較
42 = 'the answer'       #False
42 != 'the answer'      #True

需要注意的是,浮點型和整數型雖然型別不同,但是不影響比較運算:

5.0 == 5        #True
3.0 > 1         #True

你可能會有個疑問,為什麼”1 = 1 要寫作 1 == 1?”,因為在Python中運算子號和數學很多相似之處,但又略有不同。”=”表示的意義是賦值,並非數學中的”等於”。所以”1 = 1”這種寫法並不成立,並且Python也不會給你返回布林值。所以使用”==”這種表示”等於”,記住就可以了。

布林型別的比較:

True > False
True + False > False + False

這個結果如何理解呢?還記得前面說過得,True和Flase對於計算機就是1和0,如果在輸入True + Flase 檢視結果不難發現,True = 1,False = 0,也就是說,上面的程式碼實際等價於:

1 > 0
1 + 0 > 0 + 0

還有個小技巧是1 <> 3這種表示式實際上等價於1 != 3,記住即可。

未完待續~~~~本文將繼續更新