1 整數和浮點數
Python支持對整數和浮點數直接進行四則混合運算。使用括號可以提升優先級,這和數學運算完全一致,注意只
能使用小括號,但是括號可以嵌套很多層。
和數學運算不同的地方是,Python的整數運算結果仍然是整數,浮點數運算結果仍然是浮點數:
1 + 2 # ==> 整數 31.0 + 2.0 # ==> 浮點數 3.0 但是整數和浮點數混合運算的結果就變成浮點數了:1 + 2.0 # ==> 浮點數 3.0那整數的除法運算遇到除不盡的時候,結果難道不是浮點數嗎?我們來試一下:
11 / 4 # ==> 2
Python的整數除法,即使除不盡,結果仍然是整數,余數直接被扔掉。不過,Python提供了一個求余的運算 % 可以計算余數:
11 % 4 # ==> 3 如果我們要計算 11 / 4 的精確結果,按照“整數和浮點數混合運算的結果是浮點數”的法則,把兩個數中的一個變成浮點數再運算就沒問題了:
11.0 / 4 # ==> 2.752 布爾值布爾類型只有
True和False兩種值,但是布爾類型有以下幾種運算:與運算:只有兩個布爾值都為 True 時,計算結果才為 True。
True and True # ==> TrueTrue and False # ==> FalseFalse and True # ==> FalseFalse and False # ==> False 或運算:只要有一個布爾值為 True,計算結果就是 True。True or True # ==> TrueTrue or False # ==> TrueFalse or True # ==> TrueFalse or False # ==> False 非運算:把True變為False,或者把False變為True:not True # ==> Falsenot False # ==> True布爾運算在計算機中用來做條件判斷,根據計算結果為True或者False,計算機可以自動執行不同的后續代碼。
在Python中,布爾類型還可以與其他數據類型做 and、or和not運算,請看下面的代碼:a = TruePRint a and 'a=T' or 'a=F' 計算結果不是布爾類型,而是字符串 'a=T',這是為什么呢?因為Python把
0、空字符串''和None看成 False,其他數值和非空字符串都看成 True,所以:True and'a=T' 計算結果是 'a=T',繼續計算 'a=T' or 'a=F' 計算結果還是 'a=T'
要解釋上述結果,又涉及到 and 和 or 運算的一條重要法則:短路計算。
1. 在計算 a and b 時,如果 a 是 False,則根據與運算法則,整個結果必定為 False,因此返回 a;如
果 a 是 True,則整個計算結果必定取決與 b,因此返回 b。
2. 在計算 a or b 時,如果 a 是 True,則根據或運算法則,整個計算結果必定為 True,因此返回 a;如
果 a 是 False,則整個計算結果必定取決于 b,因此返回 b。
所以Python解釋器在做布爾運算時,只要能提前確定計算結果,它就不會往后算了,直接返回結果。
新聞熱點
疑難解答