python支援對整數和浮點數直接進行四則混合運算,運算規則和數學上的四則運算規則完全一致。
基本的運算:
1 + 2 + 3 # ==> 6使用括號可以提公升優先順序,這和數**算完全一致,注意只能使用小括號,但是括號可以巢狀很多層:4 * 5 - 6 # ==> 14
7.5 / 8 + 2.1 # ==> 3.0375
(1 + 2) * 3 # ==> 9和數**算不同的地方是,python的整數運算結果仍然是整數,浮點數運算結果仍然是浮點數:(2.2 + 3.3) / (1.5 * (9 - 0.3)) # ==> 0.42145593869731807
1 + 2 # ==> 整數 3但是整數和浮點數混合運算的結果就變成浮點數了:1.0 + 2.0 # ==> 浮點數 3.0
1 + 2.0 # ==> 浮點數 3.0為什麼要區分整數運算和浮點數運算呢?這是因為整數運算的結果永遠是精確的,而浮點數運算的結果不一定精確,因為計算機記憶體再大,也無法精確表示出無限迴圈小數,比如
0.1
換成二進位制表示就是無限迴圈小數。
那整數的除法運算遇到除不盡的時候,結果難道不是浮點數嗎?我們來試一下:
11 / 4 # ==> 2令很多初學者驚訝的是,python的整數除法,即使除不盡,結果仍然是整數,餘數直接被扔掉。不過,python提供了乙個求餘的運算 % 可以計算餘數:
11 % 4 # ==> 3如果我們要計算 11 / 4 的精確結果,按照「整數和浮點數混合運算的結果是浮點數」的法則,把兩個數中的乙個變成浮點數再運算就沒問題了:
11.0 / 4 # ==> 2.75
請計算 2.5 + 10 / 4 ,並解釋計算結果為什麼不是期望的 5.0 ?
請修復上述運算,使得計算結果是 5.0
我們已經了解了python支援布林型別的資料,布林型別只有true
和false
兩種值,但是布林型別有以下幾種運算:
與運算:只有兩個布林值都為 true 時,計算結果才為 true。
true and true # ==> true或運算:只要有乙個布林值為 true,計算結果就是 true。true and false # ==> false
false and true # ==> false
false and false # ==> false
true or true # ==> true非運算:把true變為false,或者把false變為true:true or false # ==> true
false or true # ==> true
false or false # ==> false
not true # ==> false布林運算在計算機中用來做條件判斷,根據計算結果為true或者false,計算機可以自動執行不同的後續**。not false # ==> true
在python中,布林型別還可以與其他資料型別做 and、or和not運算,請看下面的**:
a = true計算結果不是布林型別,而是字串 'a=t',這是為什麼呢?print a and 'a=t' or 'a=f'
因為python把0
、空字串''
和none
看成 false,其他數值和非空字串都看成true,所以:
true and 'a=t' 計算結果是 'a=t'要解釋上述結果,又涉及到 and 和 or 運算的一條重要法則:短路計算。繼續計算 'a=t' or 'a=f' 計算結果還是 'a=t'
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直譯器在做布林運算時,只要能提前確定計算結果,它就不會往後算了,直接返回結果。
請執行如下**,並解釋列印的結果:
a = 'python'print 'hello,', a or 'world'
b = ''
print 'hello,', b or 'world'
整數和浮點數
python支援對整數和浮點數直接進行四則混合運算,運算規則和數學上的四則運算規則完全一致。基本的運算 1 2 3 6 4 5 6 14 7.5 8 2.1 3.0375使用括號可以提公升優先順序,這和數 算完全一致,注意只能使用小括號,但是括號可以巢狀很多層 1 2 3 9 2.2 3.3 1.5...
Python中整數和浮點數
python支援對整數和浮點數直接進行四則混合運算,運算規則和數學上的四則運算規則完全一致。基本的運算 1 2 3 6 4 5 6 14 7.5 8 2.1 3.0375使用括號可以提公升優先順序,這和數 算完全一致,注意只能使用小括號,但是括號可以巢狀很多層 1 2 3 9 2.2 3.3 1.5...
Python中整數和浮點數
python支援對整數和浮點數直接進行四則混合運算,運算規則和數學上的四則運算規則完全一致。基本的運算 1 2 3 6 4 5 6 14 7.5 8 2.1 3.0375使用括號可以提公升優先順序,這和數 算完全一致,注意只能使用小括號,但是括號可以巢狀很多層 1 2 3 9 2.2 3.3 1.5...