詳解Python開發(fā)語言中的基本數(shù)據(jù)類型
1.Python的基本數(shù)據(jù)類型
數(shù)據(jù)類型想必大家都知道是什么含義,指的是輸入數(shù)據(jù)的類型,任何數(shù)據(jù)都有明確的數(shù)據(jù)類型,例如我們輸入100,這個(gè)數(shù)據(jù)就是整數(shù)類型,輸入7.7這個(gè)數(shù)據(jù)就是浮點(diǎn)數(shù)類型,輸入字母、漢字、字母加漢字的數(shù)據(jù)都是字符串類型。
Python基本數(shù)據(jù)類型有三種:
- 整數(shù)類型:數(shù)字
- 浮點(diǎn)數(shù)類型:帶小數(shù)點(diǎn)的數(shù)字
- 字符串類型:字母、數(shù)字、漢字任意組合
通過type函數(shù)可以讀取某個(gè)數(shù)據(jù)的數(shù)據(jù)類型,配合print函數(shù)可以打印出某個(gè)數(shù)據(jù)的類型,語法格式如下。
type(輸入的數(shù)據(jù))
print(type(輸入的數(shù)據(jù)))
打印出100、7.7、aaas11sdj三個(gè)數(shù)據(jù)的數(shù)據(jù)類型。
print(type(100))
print(type(7.7))
print(type('aaas11sdj'))
使用print配合type函數(shù)一起使用,可以打印出某個(gè)數(shù)據(jù)的數(shù)據(jù)類型是什么。

2.整數(shù)類型的概念以及使用
2.1.整數(shù)類型的概念
整數(shù)類型是什么就不再多說了,在計(jì)算機(jī)整數(shù)中有四種不同的進(jìn)制表示方式,對(duì)于一個(gè)整數(shù)可以有十進(jìn)制、二進(jìn)制、八進(jìn)制、十六進(jìn)制這四種表示方式,默認(rèn)情況下整數(shù)是十進(jìn)制表示。
- 十進(jìn)制默認(rèn)就是一個(gè)整數(shù),沒有任何含義
- 二進(jìn)制是以0b開頭的,只有0和1兩個(gè)數(shù)字,在計(jì)算機(jī)中一切皆二進(jìn)制,只有0和1。
- 八進(jìn)制是以0o開頭的,包含0-7八個(gè)數(shù)字。
- 十六進(jìn)制是以0x開頭,包含0-9十個(gè)數(shù)字和A-F六個(gè)字母。
各種進(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)制都是一個(gè)整數(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è)的個(gè)位數(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)換成一個(gè)整數(shù)。
1)使用print函數(shù)將輸入的整數(shù)轉(zhuǎn)換成十進(jìn)制數(shù)
print函數(shù)會(huì)將傳入的整數(shù)轉(zhuǎn)換成一個(gè)十進(jìn)制數(shù)字,根據(jù)傳入的整數(shù),print函數(shù)會(huì)識(shí)別這個(gè)證書是幾進(jìn)制數(shù),然后通過運(yùn)算轉(zhuǎn)換成對(duì)應(yīng)的十進(jìn)制數(shù)。
#傳入一個(gè)十進(jìn)制數(shù)118,被print函數(shù)輸出后得到十進(jìn)制數(shù)118 print(118) #傳入一個(gè)二進(jìn)制數(shù)0b1110110,被print函數(shù)輸出后得到十進(jìn)制數(shù)118 print(0b1110110) #傳入一個(gè)八進(jìn)制數(shù)0o166,被print函數(shù)輸出后得到十進(jìn)制數(shù)118 print(0o166) #傳入一個(gè)十六進(jìn)制數(shù)0x76,被print函數(shù)輸出后得到十進(jìn)制數(shù)118 print(0x76)
2)使用print函數(shù)將傳入的數(shù)據(jù)根據(jù)進(jìn)制函數(shù)轉(zhuǎn)換成對(duì)應(yīng)進(jìn)制數(shù)
使用print函數(shù),根據(jù)我們傳入的數(shù)據(jù),必須是整數(shù),然后通過進(jìn)制函數(shù),將這個(gè)整數(shù)轉(zhuǎn)換成對(duì)應(yīng)進(jìn)制的數(shù)字。
對(duì)于進(jìn)制轉(zhuǎn)換的函數(shù),Python有3個(gè)內(nèi)置的進(jìn)制函數(shù),可以將傳入的十進(jìn)制數(shù)字轉(zhuǎn)換成對(duì)應(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)換成一個(gè)整數(shù),也可以說是創(chuàng)建一個(gè)整數(shù),使用int函數(shù)處理整數(shù)時(shí)有三種情況:
- 當(dāng)int函數(shù)不傳入任何參數(shù)時(shí),默認(rèn)返回整數(shù)0。
- 當(dāng)int函數(shù)傳入一個(gè)參數(shù)時(shí),會(huì)將傳遞的參數(shù)轉(zhuǎn)換成整數(shù),例如傳入的是小數(shù),也會(huì)將小數(shù)部分移除,僅顯示整數(shù)部分。
- 當(dāng)int函數(shù)傳入兩個(gè)參數(shù)時(shí),第一個(gè)參數(shù)必須是數(shù)字,第二個(gè)參數(shù)指定這個(gè)數(shù)字是哪種進(jìn)制,然后根據(jù)傳參將這個(gè)數(shù)字轉(zhuǎn)換成十進(jìn)制。
#當(dāng)int函數(shù)不傳入任何參數(shù)時(shí),默認(rèn)返回整數(shù)0
print(int())
#當(dāng)int函數(shù)傳入一個(gè)參數(shù)時(shí),會(huì)將傳遞的參數(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ù)傳入兩個(gè)參數(shù)
#傳入數(shù)字118,這個(gè)數(shù)字是十進(jìn)制,轉(zhuǎn)換成對(duì)應(yīng)的十進(jìn)制數(shù),得到的結(jié)果是118
print(int('118',10))
#傳入數(shù)字0o166,這個(gè)數(shù)字是八進(jìn)制,轉(zhuǎn)換成對(duì)應(yīng)的十進(jìn)制數(shù),得到的結(jié)果是118
print(int('0o166',8))
3.浮點(diǎn)數(shù)類型的概念以及使用
浮點(diǎn)數(shù)指的就是小數(shù),我們可以直接使用print函數(shù)打印一個(gè)浮點(diǎn)數(shù)。
print(0.348923740932) #得到結(jié)果0.348923740932
另外我們還可以通過float函數(shù)創(chuàng)建浮點(diǎn)數(shù),和int函數(shù)使用方法一樣,通過float函數(shù)可以指定傳入的數(shù)據(jù)輸出后是一個(gè)浮點(diǎn)數(shù),但是傳入的數(shù)字必須是數(shù)字。
對(duì)于float函數(shù)來說,如果不傳入任何參數(shù),默認(rèn)返回浮點(diǎn)數(shù)0.0,當(dāng)只傳遞一個(gè)參數(shù)時(shí),會(huì)將傳遞的參數(shù)轉(zhuǎn)換為浮點(diǎn)數(shù)。
#不傳入?yún)?shù)默認(rèn)返回0 print(float()) #傳入一個(gè)整數(shù) 被float轉(zhuǎn)換成浮點(diǎn)數(shù) 結(jié)果為176.0 print(float(176)) #傳入一個(gè)浮點(diǎn)數(shù),被float轉(zhuǎn)換成浮點(diǎn)數(shù),結(jié)果不變:152.88 print(float(152.88))
另外對(duì)于很大的數(shù)字,例如幾千萬幾個(gè)億,我們也可以使用浮點(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這個(gè)整數(shù)比較大,我們希望傳參時(shí)簡(jiǎn)化輸入的內(nèi)容,少輸入一點(diǎn),基于這種情況可以通過float函數(shù)使用科學(xué)計(jì)數(shù)法的方式簡(jiǎn)化輸入的內(nèi)容 print(float(5.27e7)) #返回的結(jié)果為:52700000.0 #求5.27的10的-3次方是多少 print(float(5.27e-3))
浮點(diǎn)數(shù)在運(yùn)算過程中可能會(huì)出現(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)。

對(duì)于這種不精準(zhǔn)的浮點(diǎn)數(shù)運(yùn)算,我們可以使用decimal、fractions這兩個(gè)模塊中的類來解決此問題。
使用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這個(gè)模塊的內(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á)式為真時(shí),返回True print(5>3) #當(dāng)表達(dá)式為假時(shí),返回False print(6<2)

True對(duì)應(yīng)的數(shù)字值是1,F(xiàn)alse對(duì)應(yīng)的數(shù)字值是0。
#TRUE的值為1,如果TRUE的值不為1,則會(huì)返回False print(True == 1) #False的值為0,如果False的值不為1,則會(huì)返回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ù)類型的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Python標(biāo)準(zhǔn)庫之urllib和urllib3的使用及說明
這篇文章主要介紹了Python標(biāo)準(zhǔn)庫之urllib和urllib3使用及說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-12-12
python中如何使用xml.dom.minidom模塊讀取解析xml文件
xml.dom.minidom模塊應(yīng)該是內(nèi)置模塊不用下載安裝,本文給大家介紹python中如何使用xml.dom.minidom模塊讀取解析xml文件,感興趣的朋友一起看看吧2023-10-10
pandas中的Timestamp只保留日期不顯示時(shí)間
這篇文章主要介紹了pandas中的Timestamp只保留日期不顯示時(shí)間,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-07-07
Keras實(shí)現(xiàn)DenseNet結(jié)構(gòu)操作
這篇文章主要介紹了Keras實(shí)現(xiàn)DenseNet結(jié)構(gòu)操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-07-07

