Python數(shù)值型的基礎(chǔ)知識和常用數(shù)字處理函數(shù)

python的內(nèi)置數(shù)據(jù)結(jié)構(gòu)之?dāng)?shù)值型

1.1數(shù)值型的基本類型和概念

類型 含義 示例
int 整型 3
float 浮點型 3.13
complex 復(fù)數(shù) 2+2i
bool 布爾值 True
  • int,float,complex,bool都是class,1,5.0,1+3i都是對象即實例
  • int:python3的int都是長整型,沒有大小限制,受限于內(nèi)存區(qū)域大小.
  • float:由整數(shù)和小數(shù)部分組成.C的雙精度實現(xiàn)
  • complex: 由實部和虛部組成,實部虛部都是浮點數(shù).
  • bool:int的子類,僅有True和False對性0和1,可以和整數(shù)直接運算.

1.2數(shù)字常見的處理方法

  • round()函數(shù)

round()函數(shù)近似于數(shù)學(xué)中的四舍五入,與四舍五入不同的地方是,當(dāng)數(shù)值處于中間點時(即小數(shù)部分為0.5),取離該數(shù)值最近的一個偶數(shù).

round(0.49)
0
round(0.5)
0
round(0.51)
1
round(1.49)
1
round(1.5)
2
round(1.51)
2
  • math模塊,floor()地板,ceil()天花板

floor()和ceil()是math模塊下提供的函數(shù).floor()是取距離被處理的數(shù)值最近的兩個整數(shù)里比較小的一個,ceil是取距離被處理的數(shù)值最近的兩個整數(shù)里比較大的一個.
當(dāng)一個數(shù)為正數(shù)時,floor()即舍去小數(shù)部分取整,ceil()即向上取整.
當(dāng)一個數(shù)為負(fù)數(shù)時,floor()取較小的數(shù),ceil()舍去小數(shù)部分取較大的數(shù).

import math
math.floor(1.4),math.ceil(1.4)
(1, 2)
math.floor(-1.4),math.ceil(-1.4)
(-2, -1)
  • int()函數(shù)

int():int()函數(shù)可以把浮點數(shù)取整,也可以把數(shù)字的字符串類型轉(zhuǎn)換為整型

>>> int(2.1)
2
>>> int(-2.1)
-2

可見,int()函數(shù)只是將浮點數(shù)的小數(shù)部分抹去,保留整數(shù)部分

  • //

//:整除.當(dāng)使用/進(jìn)行除法運算時,返回的值是一個浮點數(shù).如果我們需要它返回一個整數(shù)的話,應(yīng)當(dāng)使用//方法.

>>> 7//2
3
>>> -7//2
-4
>>> -7.1//2
-4.0
>>> 7.1//2
3.0
>>> 7//2.1
3.0
>>> -7//2.1
-4.0

可見,整除方法得到的數(shù),如果含有小數(shù)部分的話,依舊是取比這個數(shù)小一點點的整數(shù).如得到結(jié)果是3.5,則取3,如果得到結(jié)果是-3.5,則取-4.

值得注意的是,

即使我們使用了整除方法,當(dāng)我們的除數(shù)或者被除數(shù)出現(xiàn)了浮點數(shù)時,返回的結(jié)果雖然小數(shù)部分沒有數(shù)值,但是依然是一個浮點數(shù)而不是整數(shù).

  • abs()函數(shù)

abs():絕對值函數(shù).我們可以通過abs()獲得你輸入的數(shù)的絕對值.

>>> abs(-2.1)
2.1
>>> abs(3.0)
3.0
>>> abs(0)
0
>>> abs(1)
1

當(dāng)我們輸入的是浮點數(shù)時,返回的是浮點數(shù).當(dāng)我們輸入的數(shù)是整型時,返回的數(shù)也是整型.說明abs()僅改變數(shù)值的正負(fù),不影響數(shù)值的類型.

  • min()函數(shù),max()函數(shù)

min()函數(shù)和max()函數(shù)是輸出最小值和最大值的函數(shù),當(dāng)處理對象是數(shù)值時,我們可以往函數(shù)中放多個數(shù)值,一次比較.另外,min()和max()也可以處理可迭代對象中的最大值和最小值的問題

>>> min(1,2,3,4,5,0)
0
>>> max(0,1,3,5,7,9)
9
  • pow(x,y)函數(shù)

pow(x,y)函數(shù)返回x的y次方的值

>>> pow(3,2)
9
>>> pow(9,0.5)
3.0
>>> pow(27,1/3)
3.0
>>> pow(9.0,2)
81.0

可見,使用pow(x,y)時,假如x或者y為浮點數(shù),則輸出的值一定為浮點數(shù).加入x和y都為整型,則返回的值為整型.

  • math.sqrt()

sqrt()是math下的一個函數(shù).返回一個平方根.由數(shù)學(xué)知識可知,這個函數(shù)只能處理非負(fù)數(shù).

>>> import math
>>> math.sqrt(9)
3.0
>>> math.sqrt(16.0)
4.0
>>> math.sqrt(0)
0.0
>>> math.sqrt(-4)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: math domain error

無論我們輸入的是整型,浮點型還是0,返回的值都是浮點數(shù).當(dāng)我們輸入的數(shù)為負(fù)數(shù)時,系統(tǒng)報錯,輸入的值異常.

  • math.pi
  • math.e

這兩個方法都是math模塊下的方法
math.pi返回一個圓周率pi.
math.e返回一個自然常數(shù)e.

>>> import math
>>> math.pi
3.141592653589793
>>> math.e
2.718281828459045

Python默認(rèn)使用了雙精度的浮點數(shù).

雙精度浮點數(shù)(double)是計算機使用的一種數(shù)據(jù)類型精刷,使用 64 位(8字節(jié)) 來存儲一個浮點數(shù)。 它可以表示十進(jìn)制的15或16位有效數(shù)字侥猬,其可以表示的數(shù)字的絕對值范圍大約是:2.23x10的-308次方 ~ 1.79x10的308次方枢舶。IEEE754為其定制標(biāo)準(zhǔn)

  • 進(jìn)制函數(shù) bin(),oct(),hex()

通過進(jìn)制函數(shù)bin(),oct(),hex(),我們可以輕松地完成進(jìn)制之間的轉(zhuǎn)換.
bin():可以把各種不同進(jìn)制的數(shù)轉(zhuǎn)換為二進(jìn)制數(shù)
oct():可以把不同進(jìn)制的數(shù)轉(zhuǎn)換為八進(jìn)制數(shù)
hex():可以把不同進(jìn)制的數(shù)轉(zhuǎn)換為十六進(jìn)制數(shù)
這三個進(jìn)制轉(zhuǎn)換函數(shù)可以完成不同進(jìn)制之間的轉(zhuǎn)換,但是這三個函數(shù)只能處理整型,不能處理浮點數(shù),也不能處理字符串
另外,這三個函數(shù)返回的值的是字符串類型.

>>> bin(0o7)
'0b111'
>>> oct(12)
'0o14'
>>> oct(0xa)
'0o12'
>>> hex(10086)
'0x2766'

很明顯,返回的值都是字符串類型.

end.

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市瘟仿,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌比勉,老刑警劉巖劳较,帶你破解...
    沈念sama閱讀 216,692評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異浩聋,居然都是意外死亡观蜗,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,482評論 3 392
  • 文/潘曉璐 我一進(jìn)店門衣洁,熙熙樓的掌柜王于貴愁眉苦臉地迎上來墓捻,“玉大人,你說我怎么就攤上這事闸与”刑妫” “怎么了?”我有些...
    開封第一講書人閱讀 162,995評論 0 353
  • 文/不壞的土叔 我叫張陵践樱,是天一觀的道長厂画。 經(jīng)常有香客問我,道長拷邢,這世上最難降的妖魔是什么袱院? 我笑而不...
    開封第一講書人閱讀 58,223評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮瞭稼,結(jié)果婚禮上忽洛,老公的妹妹穿的比我還像新娘。我一直安慰自己环肘,他們只是感情好欲虚,可當(dāng)我...
    茶點故事閱讀 67,245評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著悔雹,像睡著了一般复哆。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上腌零,一...
    開封第一講書人閱讀 51,208評論 1 299
  • 那天梯找,我揣著相機與錄音,去河邊找鬼益涧。 笑死锈锤,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播久免,決...
    沈念sama閱讀 40,091評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼浅辙,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了妄壶?” 一聲冷哼從身側(cè)響起摔握,我...
    開封第一講書人閱讀 38,929評論 0 274
  • 序言:老撾萬榮一對情侶失蹤寄狼,失蹤者是張志新(化名)和其女友劉穎丁寄,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體泊愧,經(jīng)...
    沈念sama閱讀 45,346評論 1 311
  • 正文 獨居荒郊野嶺守林人離奇死亡伊磺,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,570評論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了删咱。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片屑埋。...
    茶點故事閱讀 39,739評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖痰滋,靈堂內(nèi)的尸體忽然破棺而出摘能,到底是詐尸還是另有隱情,我是刑警寧澤敲街,帶...
    沈念sama閱讀 35,437評論 5 344
  • 正文 年R本政府宣布团搞,位于F島的核電站,受9級特大地震影響多艇,放射性物質(zhì)發(fā)生泄漏逻恐。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,037評論 3 326
  • 文/蒙蒙 一峻黍、第九天 我趴在偏房一處隱蔽的房頂上張望复隆。 院中可真熱鬧,春花似錦姆涩、人聲如沸挽拂。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,677評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽亏栈。三九已至,卻和暖如春样刷,著一層夾襖步出監(jiān)牢的瞬間仑扑,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,833評論 1 269
  • 我被黑心中介騙來泰國打工置鼻, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留镇饮,地道東北人。 一個月前我還...
    沈念sama閱讀 47,760評論 2 369
  • 正文 我出身青樓箕母,卻偏偏與公主長得像储藐,于是被迫代替她去往敵國和親俱济。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,647評論 2 354

推薦閱讀更多精彩內(nèi)容