詳解Python開發(fā)語言中的基本數(shù)據(jù)類型
1.Python的基本數(shù)據(jù)類型
數(shù)據(jù)類型想必大家都知道是什么含義,指的是輸入數(shù)據(jù)的類型,任何數(shù)據(jù)都有明確的數(shù)據(jù)類型,例如我們輸入100,這個數(shù)據(jù)就是整數(shù)類型,輸入7.7這個數(shù)據(jù)就是浮點(diǎn)數(shù)類型,輸入字母、漢字、字母加漢字的數(shù)據(jù)都是字符串類型。
Python基本數(shù)據(jù)類型有三種:
- 整數(shù)類型:數(shù)字
- 浮點(diǎn)數(shù)類型:帶小數(shù)點(diǎn)的數(shù)字
- 字符串類型:字母、數(shù)字、漢字任意組合
通過type
函數(shù)可以讀取某個數(shù)據(jù)的數(shù)據(jù)類型,配合print
函數(shù)可以打印出某個數(shù)據(jù)的類型,語法格式如下。
type(輸入的數(shù)據(jù))
print(type(輸入的數(shù)據(jù)))
打印出100、7.7、aaas11sdj三個數(shù)據(jù)的數(shù)據(jù)類型。
print(type(100)) print(type(7.7)) print(type('aaas11sdj'))
使用print配合type函數(shù)一起使用,可以打印出某個數(shù)據(jù)的數(shù)據(jù)類型是什么。
2.整數(shù)類型的概念以及使用
2.1.整數(shù)類型的概念
整數(shù)類型是什么就不再多說了,在計(jì)算機(jī)整數(shù)中有四種不同的進(jìn)制表示方式,對于一個整數(shù)可以有十進(jìn)制、二進(jìn)制、八進(jìn)制、十六進(jìn)制這四種表示方式,默認(rèn)情況下整數(shù)是十進(jìn)制表示。
- 十進(jìn)制默認(rèn)就是一個整數(shù),沒有任何含義
- 二進(jìn)制是以0b開頭的,只有0和1兩個數(shù)字,在計(jì)算機(jī)中一切皆二進(jìn)制,只有0和1。
- 八進(jìn)制是以0o開頭的,包含0-7八個數(shù)字。
- 十六進(jìn)制是以0x開頭,包含0-9十個數(shù)字和A-F六個字母。
各種進(jìn)制包含的數(shù)字、計(jì)算方法都在下表中:
進(jìn)制類型 | 基本數(shù) | 逢幾進(jìn)一 | 計(jì)算方法 |
---|---|---|---|
十進(jìn)制 | 0/1/2/3/4/5/6/7/8/9 | 10 | 118=8+1*10^1+1*10^2 |
二進(jìn)制 | 0/1 | 2 | 0b1110110=0+1*2^1+1*2^2+0*2^3+1*2^4+1*2^5+1*2^6=118 |
八進(jìn)制 | 0/1/2/3/4/5/6/7 | 8 | 0o166=6+6*8^1+1*8^2=118 |
十六進(jìn)制 | 0/1/2/3/4/5/6/7/8/9 A/B/C/D/E/F | 16 | 0x76=6+7*16^118 |
進(jìn)制類型基本數(shù)逢幾進(jìn)一計(jì)算方法
進(jìn)制轉(zhuǎn)換的計(jì)算方法技巧:
任何進(jìn)制都是一個整數(shù),幾進(jìn)制轉(zhuǎn)換成幾進(jìn)制,就要看是逢幾進(jìn)一,例如整數(shù)118轉(zhuǎn)換成十進(jìn)制:
逢十進(jìn)一:118=8+1*10^1+1*10^2
,從最左側(cè)的個位數(shù)開始計(jì)算,第一位不變,第二位乘10的1次方,第三位乘10的2次方,以此類推,有幾位數(shù)字就計(jì)算幾位,最后將數(shù)字相加就是準(zhǔn)確的十進(jìn)制數(shù)。
2.2.使用Python操作整數(shù)類型
print函數(shù)可以將輸入的整數(shù)(數(shù)字)轉(zhuǎn)換成十進(jìn)制數(shù),也可以結(jié)合進(jìn)制函數(shù)將輸入的數(shù)據(jù)轉(zhuǎn)換成指定進(jìn)制的數(shù)字,相當(dāng)于進(jìn)制轉(zhuǎn)換,還可以通過print函數(shù)結(jié)合int整數(shù)函數(shù)將傳入的數(shù)據(jù)轉(zhuǎn)換成一個整數(shù)。
1)使用print函數(shù)將輸入的整數(shù)轉(zhuǎn)換成十進(jìn)制數(shù)
print函數(shù)會將傳入的整數(shù)轉(zhuǎn)換成一個十進(jìn)制數(shù)字,根據(jù)傳入的整數(shù),print函數(shù)會識別這個證書是幾進(jìn)制數(shù),然后通過運(yùn)算轉(zhuǎn)換成對應(yīng)的十進(jìn)制數(shù)。
#傳入一個十進(jìn)制數(shù)118,被print函數(shù)輸出后得到十進(jìn)制數(shù)118 print(118) #傳入一個二進(jìn)制數(shù)0b1110110,被print函數(shù)輸出后得到十進(jìn)制數(shù)118 print(0b1110110) #傳入一個八進(jìn)制數(shù)0o166,被print函數(shù)輸出后得到十進(jìn)制數(shù)118 print(0o166) #傳入一個十六進(jìn)制數(shù)0x76,被print函數(shù)輸出后得到十進(jìn)制數(shù)118 print(0x76)
2)使用print函數(shù)將傳入的數(shù)據(jù)根據(jù)進(jìn)制函數(shù)轉(zhuǎn)換成對應(yīng)進(jìn)制數(shù)
使用print函數(shù),根據(jù)我們傳入的數(shù)據(jù),必須是整數(shù),然后通過進(jìn)制函數(shù),將這個整數(shù)轉(zhuǎn)換成對應(yīng)進(jìn)制的數(shù)字。
對于進(jìn)制轉(zhuǎn)換的函數(shù),Python有3個內(nèi)置的進(jìn)制函數(shù),可以將傳入的十進(jìn)制數(shù)字轉(zhuǎn)換成對應(yīng)進(jìn)制的字符串。
- bin():將傳入的十進(jìn)制整數(shù)轉(zhuǎn)換成二進(jìn)制字符串。
- oct():將傳入的十進(jìn)制整數(shù)轉(zhuǎn)換成八進(jìn)制字符串。
- hex():將傳入的十進(jìn)制整數(shù)轉(zhuǎn)換成十六進(jìn)制字符串。
#bin():將傳入的十進(jìn)制整數(shù)轉(zhuǎn)換成二進(jìn)制字符串 print(bin(118)) #返回0b1110110 # oct():將傳入的十進(jìn)制整數(shù)轉(zhuǎn)換成八進(jìn)制字符串。 print(oct(118)) #返回0o166 # hex():將傳入的十進(jìn)制整數(shù)轉(zhuǎn)換成十六進(jìn)制字符串。 print(hex(118)) #返回0x76
3)使用print函數(shù)配合int函數(shù)將傳入的數(shù)據(jù)轉(zhuǎn)換成整數(shù)
int函數(shù)可以將傳入的數(shù)據(jù)轉(zhuǎn)換成一個整數(shù),也可以說是創(chuàng)建一個整數(shù),使用int函數(shù)處理整數(shù)時有三種情況:
- 當(dāng)int函數(shù)不傳入任何參數(shù)時,默認(rèn)返回整數(shù)0。
- 當(dāng)int函數(shù)傳入一個參數(shù)時,會將傳遞的參數(shù)轉(zhuǎn)換成整數(shù),例如傳入的是小數(shù),也會將小數(shù)部分移除,僅顯示整數(shù)部分。
- 當(dāng)int函數(shù)傳入兩個參數(shù)時,第一個參數(shù)必須是數(shù)字,第二個參數(shù)指定這個數(shù)字是哪種進(jìn)制,然后根據(jù)傳參將這個數(shù)字轉(zhuǎn)換成十進(jìn)制。
#當(dāng)int函數(shù)不傳入任何參數(shù)時,默認(rèn)返回整數(shù)0 print(int()) #當(dāng)int函數(shù)傳入一個參數(shù)時,會將傳遞的參數(shù)轉(zhuǎn)換成整數(shù) print(int(118)) #轉(zhuǎn)換成118 print(int(118.9)) #轉(zhuǎn)換成118 print(int('117')) #轉(zhuǎn)換成117 #int函數(shù)傳入兩個參數(shù) #傳入數(shù)字118,這個數(shù)字是十進(jìn)制,轉(zhuǎn)換成對應(yīng)的十進(jìn)制數(shù),得到的結(jié)果是118 print(int('118',10)) #傳入數(shù)字0o166,這個數(shù)字是八進(jìn)制,轉(zhuǎn)換成對應(yīng)的十進(jìn)制數(shù),得到的結(jié)果是118 print(int('0o166',8))
3.浮點(diǎn)數(shù)類型的概念以及使用
浮點(diǎn)數(shù)指的就是小數(shù),我們可以直接使用print函數(shù)打印一個浮點(diǎn)數(shù)。
print(0.348923740932) #得到結(jié)果0.348923740932
另外我們還可以通過float函數(shù)創(chuàng)建浮點(diǎn)數(shù),和int函數(shù)使用方法一樣,通過float函數(shù)可以指定傳入的數(shù)據(jù)輸出后是一個浮點(diǎn)數(shù),但是傳入的數(shù)字必須是數(shù)字。
對于float函數(shù)來說,如果不傳入任何參數(shù),默認(rèn)返回浮點(diǎn)數(shù)0.0,當(dāng)只傳遞一個參數(shù)時,會將傳遞的參數(shù)轉(zhuǎn)換為浮點(diǎn)數(shù)。
#不傳入?yún)?shù)默認(rèn)返回0 print(float()) #傳入一個整數(shù) 被float轉(zhuǎn)換成浮點(diǎn)數(shù) 結(jié)果為176.0 print(float(176)) #傳入一個浮點(diǎn)數(shù),被float轉(zhuǎn)換成浮點(diǎn)數(shù),結(jié)果不變:152.88 print(float(152.88))
另外對于很大的數(shù)字,例如幾千萬幾個億,我們也可以使用浮點(diǎn)數(shù)通過科學(xué)技術(shù)法的形式來表示。
公式為:men
? m表示浮點(diǎn)數(shù),e是固定寫法表示乘以10,n表示乘以10的n次方。
? 例如我要計(jì)算浮點(diǎn)數(shù)5.27的10的7次方是多少,寫法就是5.27e7,過程就是5.27*10^7
,結(jié)果為52700000。
#52700000這個整數(shù)比較大,我們希望傳參時簡化輸入的內(nèi)容,少輸入一點(diǎn),基于這種情況可以通過float函數(shù)使用科學(xué)計(jì)數(shù)法的方式簡化輸入的內(nèi)容 print(float(5.27e7)) #返回的結(jié)果為:52700000.0 #求5.27的10的-3次方是多少 print(float(5.27e-3))
浮點(diǎn)數(shù)在運(yùn)算過程中可能會出現(xiàn)不精準(zhǔn)的現(xiàn)象,如下所示。
#運(yùn)算結(jié)果非0 print(1.1+2.2+3.3) #輸出結(jié)果為6.6 精準(zhǔn)。 #運(yùn)算結(jié)果為0 print(1.1+2.2-3.3) #輸出結(jié)果為:4.440892098500626e-16 不精準(zhǔn)。
對于這種不精準(zhǔn)的浮點(diǎn)數(shù)運(yùn)算,我們可以使用decimal、fractions這兩個模塊中的類來解決此問題。
使用decimal模塊可以處理十進(jìn)制浮點(diǎn)數(shù)運(yùn)算,使用fractions模塊可以處理分子分母相除之后的浮點(diǎn)數(shù)運(yùn)算。
1.使用decimal模塊解決
#從decimal模塊中導(dǎo)入Decimal類,Decimal可以理解為是decimal模塊中的內(nèi)置函數(shù) from decimal import Decimal #將浮點(diǎn)數(shù)傳入Decimal類中,使用print進(jìn)行運(yùn)算 print(Decimal('1.1') + Decimal('2.2') - Decimal('3.3')) #輸出結(jié)果為:0.0 正確的結(jié)果
2.使用fractions模塊解決
#從fractions模塊中導(dǎo)入Fraction類,F(xiàn)raction類可以理解為是fractions這個模塊的內(nèi)置函數(shù) from fractions import Fraction #將浮點(diǎn)數(shù)傳入到Fraction類中,使用print進(jìn)行運(yùn)算 print(Fraction(11, 10) + Fraction(22, 10) - Fraction(33, 10)) #輸出結(jié)果:0 正確的結(jié)果
4.布爾類型的概念以及使用
布爾類型只有兩種取值范圍,要么是True,要么是False,嚴(yán)格區(qū)分大小寫。
例如:今天下雨嗎?今天回家嗎?都屬于布爾表達(dá)式,回答要么是True,要么是False。
#當(dāng)表達(dá)式為真時,返回True print(5>3) #當(dāng)表達(dá)式為假時,返回False print(6<2)
True對應(yīng)的數(shù)字值是1,F(xiàn)alse對應(yīng)的數(shù)字值是0。
#TRUE的值為1,如果TRUE的值不為1,則會返回False print(True == 1) #False的值為0,如果False的值不為1,則會返回False print(False == 0) #為了進(jìn)一步驗(yàn)證True和False的值,我們進(jìn)行一組運(yùn)算,True=1+False=0+10,返回結(jié)果為11,就表示我們的說法是正確的 print(True + False + 10)
以上就是詳解Python開發(fā)語言中的基本數(shù)據(jù)類型的詳細(xì)內(nèi)容,更多關(guān)于Python基本數(shù)據(jù)類型的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
python3 dict ndarray 存成json,并保留原數(shù)據(jù)精度的實(shí)例
今天小編就為大家分享一篇python3 dict ndarray 存成json,并保留原數(shù)據(jù)精度的實(shí)例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-12-12使用Python腳本zabbix自定義key監(jiān)控oracle連接狀態(tài)
這篇文章主要介紹了使用Python腳本zabbix自定義key監(jiān)控oracle連接狀態(tài),本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下2019-08-08win10環(huán)境下配置vscode python開發(fā)環(huán)境的教程詳解
這篇文章主要介紹了win10環(huán)境下配置python開發(fā)環(huán)境(vscode)的教程,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下2019-10-10python類:class創(chuàng)建、數(shù)據(jù)方法屬性及訪問控制詳解
下面小編就為大家?guī)硪黄猵ython類:class創(chuàng)建、數(shù)據(jù)方法屬性及訪問控制詳解。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-07-07pycharm 實(shí)現(xiàn)調(diào)試窗口恢復(fù)
這篇文章主要介紹了pycharm 實(shí)現(xiàn)調(diào)試窗口恢復(fù)的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-02-02Python使用BeautifulSoup進(jìn)行頁面解析
在Python中,我們可以使用BeautifulSoup庫來解析網(wǎng)頁,BeautifulSoup提供了簡單而強(qiáng)大的API,使得解析網(wǎng)頁變得輕松而高效,下面小編就來為大家詳細(xì)講講BeautifulSoup解析網(wǎng)頁的具體操作吧2023-09-09Pandas計(jì)算元素的數(shù)量和頻率的方法(出現(xiàn)的次數(shù))
本文主要介紹了Pandas計(jì)算元素的數(shù)量和頻率的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-02-02