Python 入門(三)整數和浮點數 布林型別

2021-09-25 02:50:29 字數 2474 閱讀 3320

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 * (9 - 0.3)) # ==> 0.42145593869731807

和數**算不同的地方是,python的整數運算結果仍然是整數,浮點數運算結果仍然是浮點數:

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支援布林型別的資料,布林型別只有truefalse兩種值,但是布林型別有以下幾種運算:

與運算:只有兩個布林值都為 true 時,計算結果才為 true。

true and true   # ==> true

true and false # ==> false

false and true # ==> false

false and false # ==> false

或運算:只要有乙個布林值為 true,計算結果就是 true。

true or true   # ==> true

true or false # ==> true

false or true # ==> true

false or false # ==> false

非運算:把true變為false,或者把false變為true:

not true   # ==> false

not false # ==> true

布林運算在計算機中用來做條件判斷,根據計算結果為true或者false,計算機可以自動執行不同的後續**。

在python中,布林型別還可以與其他資料型別做 and、or和not運算,請看下面的**:

a = true

print 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直譯器在做布林運算時,只要能提前確定計算結果,它就不會往後算了,直接返回結果。

請執行如下**,並解釋列印的結果:

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...