<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          一文帶你搞懂Python數(shù)據(jù)類型之?dāng)?shù)字類型

          共 2960字,需瀏覽 6分鐘

           ·

          2021-11-21 02:54

          點(diǎn)擊上方“Go語(yǔ)言進(jìn)階學(xué)習(xí)”,進(jìn)行關(guān)注

          回復(fù)“Go語(yǔ)言”即可獲贈(zèng)Python從入門到進(jìn)階共10本電子書(shū)

          白日依山盡,黃河入海流。

          Hey,大家好呀,我是Go進(jìn)階者。

          一、數(shù)字類型

          數(shù)字類型用于存儲(chǔ)數(shù)學(xué)意義上的數(shù)值。

          數(shù)字類型是不可變類型。所謂的不可變類型,指的是類型的值一旦有不同了,那么它就是一個(gè)全新的對(duì)象。數(shù)字1和2分別代表兩個(gè)不同的對(duì)象,對(duì)變量重新賦值一個(gè)數(shù)字類型,會(huì)新建一個(gè)數(shù)字對(duì)象。


          Python的變量和數(shù)據(jù)類型的關(guān)系。

          變量只是對(duì)某個(gè)對(duì)象的引用或者說(shuō)代號(hào)、名字、調(diào)用等等,變量本身沒(méi)有數(shù)據(jù)類型的概念。類似1,[2, 3, 4],“haha”這一類對(duì)象才具有數(shù)據(jù)類型的概念。

          例如:

          a = 1 # 創(chuàng)建數(shù)字對(duì)象1。
          a = 2 # 創(chuàng)建數(shù)字對(duì)象2,并將2賦值給變量a,a不再指向數(shù)字對(duì)象1

          這里,發(fā)生了變化的是變量a的指向,而不是數(shù)字對(duì)象1變成了數(shù)字對(duì)象2。初學(xué)者可能會(huì)比較迷糊,但不要緊,我們努力去明白它。


          二、Python 支持三種不同的數(shù)字類型(整數(shù)、浮點(diǎn)數(shù)和復(fù)數(shù))

          1. 整數(shù)(Int)

          通常被稱為整型,是正或負(fù)整數(shù),不帶小數(shù)點(diǎn)。Python3的整型可以當(dāng)作Long類型(更長(zhǎng)的整型)使用,所以 Python3沒(méi)有Python2的Long類型。

          例如:1,100,-8080,0,等等。

          表示數(shù)字的時(shí)候,有時(shí)我們還會(huì)用八進(jìn)制或十六進(jìn)制來(lái)表示:

          十六進(jìn)制用0x前綴和0-9,a-f表示,例如:0xff00,0xa5b4c3d2。

          八進(jìn)制用0o前綴和0-7表示,例如0o12。

          Python的整數(shù)長(zhǎng)度為32位,并且通常是連續(xù)分配內(nèi)存空間的。

          什么是空間地址?

          空間地址(address space)表示任何一個(gè)計(jì)算機(jī)實(shí)體所占用的內(nèi)存大小。比如外設(shè)、文件、服務(wù)器或者一個(gè)網(wǎng)絡(luò)計(jì)算機(jī)。地址空間包括物理空間以及虛擬空間。

          例 :

          print(id(-2))
          print(id(-1))
          print(id(0))
          print(id(1))
          print(id(2))

          從上面的空間地址看,地址之間正好差32。為什么會(huì)這樣?

          因?yàn)镻ython在初始化環(huán)境的時(shí)候就在內(nèi)存里自動(dòng)劃分了一塊空間,專門用于整數(shù)對(duì)象的存取。當(dāng)然,這塊空間也不是無(wú)限大小的,能保存的整數(shù)是有限的,所以你會(huì)看到id(0)和id(10000)之間的地址差別很大。

          >>> id(0)
          1456976928
          >>> id(10000)
          45818192

          小整數(shù)對(duì)象池:

          Python初始化的時(shí)候會(huì)自動(dòng)建立一個(gè)小整數(shù)對(duì)象池,方便我們調(diào)用,避免后期重復(fù)生成!

          這是一個(gè)包含262個(gè)指向整數(shù)對(duì)象的指針數(shù)組,范圍是-5到256。也就是說(shuō)比如整數(shù)10,即使我們?cè)诔绦蚶餂](méi)有創(chuàng)建它,其實(shí)在Python后臺(tái)已經(jīng)悄悄為我們創(chuàng)建了。

          驗(yàn)證一下小整數(shù)對(duì)象池的存在

          在程序運(yùn)行時(shí),包括Python后臺(tái)自己的運(yùn)行環(huán)境中,會(huì)頻繁使用這一范圍內(nèi)的整數(shù),如果每需要一個(gè),你就創(chuàng)建一個(gè),那么無(wú)疑會(huì)增加很多開(kāi)銷。創(chuàng)建一個(gè)一直存在,永不銷毀,隨用隨拿的小整數(shù)對(duì)象池,無(wú)疑是個(gè)比較實(shí)惠的做法。

          print(id(-6))
          print(id(-5))
          print(id(-4))
          print(id(255))
          print(id(256))
          print(id(257))


          從id(-6)和id(257)的地址,我們能看出小整數(shù)對(duì)象池的范圍,正好是-5到256。

          除了小整數(shù)對(duì)象池,Python還有整數(shù)緩沖區(qū)的概念,也就是剛被刪除的整數(shù),不會(huì)被真正立刻刪除回收,而是在后臺(tái)緩沖一段時(shí)間,等待下一次的可能調(diào)用。

          >>> a = 1000000>>> id(a)45818160>>> del a       # 刪除變量a>>> b = 1000000>>> id(b)45818160

          給變量a賦值了整數(shù)1000000,看了一下它的內(nèi)存地址。然后我把a(bǔ)刪了,又創(chuàng)建個(gè)新變量b,依然賦值為1000000,再次看下b的內(nèi)存地址,和以前a存在的是一樣的。

          del是Python的刪除關(guān)鍵字,可以刪除變量、函數(shù)、類等等。

          這一段內(nèi)容,可能感覺(jué)沒(méi)什么大用,但它對(duì)于理解Python的運(yùn)行機(jī)制有很大幫助。

          2. 浮點(diǎn)數(shù)(float)

          浮點(diǎn)數(shù)也就是小數(shù),如1.23,3.14,-9.01,等等。但是對(duì)于很大或很小的浮點(diǎn)數(shù),一般用科學(xué)計(jì)數(shù)法表示,把10用e替代,1.23x10^9就是1.23e9,或者12.3e8,0.000012可以寫(xiě)成1.2e-5,等等。

          3. 復(fù)數(shù)( (complex))

          復(fù)數(shù)由實(shí)數(shù)部分和虛數(shù)部分構(gòu)成,可以用a + bj,或者complex(a,b)表示,復(fù)數(shù)的實(shí)部a和虛部b都是浮點(diǎn)型。關(guān)于復(fù)數(shù),不做科學(xué)計(jì)算或其它特殊需要,通常很難遇到。

          數(shù)字類型轉(zhuǎn)換:

          有時(shí)候,我們需要對(duì)數(shù)字的類型進(jìn)行轉(zhuǎn)換。Python為我們提供了方便的內(nèi)置的數(shù)據(jù)類型轉(zhuǎn)換函數(shù)。

          int(x):將x轉(zhuǎn)換為一個(gè)整數(shù)。如果x是個(gè)浮點(diǎn)數(shù),則截取小數(shù)部分。

          float(x) :將x轉(zhuǎn)換到一個(gè)浮點(diǎn)數(shù)。

          complex(x) :將x轉(zhuǎn)換到一個(gè)復(fù)數(shù),實(shí)數(shù)部分為 x,虛數(shù)部分為 0。

          complex(x, y):將 x 和 y 轉(zhuǎn)換到一個(gè)復(fù)數(shù),實(shí)數(shù)部分為 x,虛數(shù)部分為 y。

          轉(zhuǎn)換過(guò)程中如果出現(xiàn)無(wú)法轉(zhuǎn)換的對(duì)象,則會(huì)拋出異常,比如int("haha"),你說(shuō)我把字符串“haha”轉(zhuǎn)換為哪個(gè)整數(shù)才對(duì)?

          a = 10.53b = 23print(int(a))
          print(float(a))
          print(complex(a))
          print(complex(a, b))


          三、math庫(kù)(數(shù)學(xué)計(jì)算)

          科學(xué)計(jì)算需要導(dǎo)入math這個(gè)庫(kù),它包含了絕大多數(shù)我們可能需要的科學(xué)計(jì)算函數(shù),一般常用的函數(shù)主要包括abs()、exp()、fabs()、max()、min()等,這里就不再贅述了,感興趣的小伙伴可以自行百度下。

          下面是兩個(gè)常用數(shù)學(xué)常量:

          常量描述
          pi數(shù)學(xué)常量 pi(圓周率,一般以π來(lái)表示)
          e數(shù)學(xué)常量 e,e即自然常數(shù)(自然常數(shù))。

          下面是一些應(yīng)用展示,注意最后的角度調(diào)用方式:

          import mathprint(math.log(2))
          print(math.cos(30))
          print(math.cos(60))print(math.sin(30))
          print(math.sin(math.degrees(30)))
          print(math.sin(math.radians(30)))

          四、總結(jié)

          ????本文詳細(xì)的講解了Python基礎(chǔ) ( 數(shù)字類型 )。介紹了有關(guān)Python 支持三種不同的數(shù)字類型。以及在實(shí)際操作中會(huì)遇到的問(wèn)題,提供了解決方案。

          ????用豐富的案例幫助大家更好理解,使用Python編程語(yǔ)言,方便大家更好理解,希望對(duì)大家的學(xué)習(xí)有幫助。我是Go進(jìn)階者,如果覺(jué)得還不錯(cuò),記得動(dòng)手點(diǎn)贊一下哈。感謝你的觀看!

          -------------------?End?-------------------

          歡迎大家點(diǎn)贊轉(zhuǎn)發(fā),轉(zhuǎn)載,感謝大家的相伴與支持

          想加入學(xué)習(xí)群請(qǐng)?jiān)诤笈_(tái)回復(fù)【入群

          萬(wàn)水千山總是情,點(diǎn)個(gè)【在看】行不行

          瀏覽 53
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  色综合久久天天综合网 | 天天插日日干 | 日本高清无码在线观看 | 日本成人性爱视频网站 | 安徽妇女BBBWBBBwm |