python資料型別和四則運算

hiekay發表於2018-10-11

不懂的時候就google.

按照下面要求,在ide中執行:

>>> 2+5
7
>>> 5-2
3
>>> 10/2
5
>>> 5*2
10
>>> 10/5+1
3
>>> 2*3-4
2

繼續要在ide中運算一下:

>>> 4+2
6
>>> 4.0+2
6.0
>>> 4.0+2.0
6.0

以上就:引入兩個資料型別:整數和浮點數

大數相乘

>>> 123456789870987654321122343445567678890098876*1233455667789990099876543332387665443345566
152278477193527562870044352587576277277562328362032444339019158937017801601677976183816L 

上面計算結果的數字最後有一個L,就表示這個數是一個長整數

  • 整數,用int表示,來自單詞:integer
  • 浮點數,用float表示,就是單詞:float
    可以用一個命令:type(object)來檢測一個數是什麼型別。
>>> type(4)
<type `int`>    #4是int,整數
>>> type(5.0)
<type `float`> #5.0是float,浮點數
type(988776544222112233445566778899887766554433221133344455566677788998776543222344556678)
<type `long`>   #是長整數,也是一個整數

幾個常見函式

求絕對值

>>> abs(10)
10
>>> abs(-10)
10
>>> abs(-1.2)
1.2

四捨五入

>>> round(1.234)
1.0
>>> round(1.234,2)
1.23

>>> #如果不清楚這個函式的用法,可以使用下面方法看幫助資訊
>>> help(round)

Help on built-in function round in module __builtin__:

round(...)
    round(number[, ndigits]) -> floating point number

    Round a number to a given precision in decimal digits (default 0 digits).
    This always returns a floating point number.  Precision may be negative.

冪函式

>>> pow(2,3)        #2的3次方
8

math模組(對於模組可能還有點陌生,不過不要緊,先按照下面程式碼實驗一下,慢慢就理解了)

>>> import math         #引入math模組
>>> math.floor(32.8)    #取整,不是四捨五入
32.0
>>> math.sqrt(4)        #開平方
2.0

重點講講除法

整數除以整數

>>> 2/5
0
>>> 2.0/5
0.4
>>> 2/5.0
0.4
>>> 2.0/5.0
0.4
  • 注意: 2/5,計算結果就是商那個整數。或者可以理解為:整數除以整數,結果是整數(商)。
>>> 5/2
2
>>> 6/3
2
>>> 5/2
2
>>> 6/2
3
>>> 7/2
3
>>> 8/2
4
>>> 9/2
4

浮點數與整數相除

>>> 9.0/2
4.5
>>> 9/2.0
4.5
>>> 9.0/2.0
4.5
>>> 8.0/2
4.0
>>> 8/2.0
4.0
>>> 8.0/2.0
4.0 
  • 歸納:不管是被除數還是除數,只要有一個數是浮點數,結果就是浮點數。
>>> 10.0/3
3.3333333333333335 
  • 說明:以上除法規則,是針對python2,在python3中,將5/2和5.0/2等同起來了。不過,如果要得到那個整數部分的上,可以用另外一種方式:地板除.
>>> 9/2
4
>>> 9//2
4

引用模組解決除法–啟用輪子

python就是這樣,有各種各樣別人造好的輪子,我們只需要用。只不過那些輪子在python裡面的名字不叫自行車、汽車,叫做“模組”,有人承接別的語言的名稱,叫做“類庫”、“類”。不管叫什麼名字把。就是別人造好的東西我們拿過來使用。
怎麼用?可以通過兩種形式用:

  • 形式1:import module-name。import後面跟空格,然後是模組名稱,例如:import os
  • 形式2:from module1 import module11。module1是一個大模組,裡面還有子模組module11,只想用module11,就這麼寫了。
    比如下面的例子:
>>> from __future__ import division
>>> 5/2
2.5
>>> 9/2
4.5
>>> 9.0/2
4.5
>>> 9/2.0
4.5

引用了一個模組之後,再做除法,就不管什麼情況,都是得到浮點數的結果了。

餘數

前面計算5/2的時候,商是2,餘數是1
餘數怎麼得到?在python中(其實大多數語言也都是),用%符號來取得兩個數相除的餘數.

>>> 5%2
1
>>> 9%2
1
>>> 7%3
1
>>> 6%4
2
>>> 5.0%2
1.0

符號:%,就是要得到兩個數(可以是整數,也可以是浮點數)相除的餘數。
前面說python有很多人見人愛的輪子(模組),她還有豐富的內建函式,也會幫我們做不少事情。例如函式divmod()

 >>> divmod(5,2)  #表示5除以2,返回了商和餘數
(2, 1)
>>> divmod(9,2)
(4, 1)
>>> divmod(5.0,2)
(2.0, 1.0)

四捨五入

內建函式:round()

>>> round(1.234567,2)
1.23
>>> round(1.234567,3)
1.235
>>> round(10.0/3,4)
3.3333

個別:

>>> round(1.2345,3)
1.234               #應該是:1.235
>>> round(2.235,2)
2.23                #應該是:2.24


相關文章