人生苦短,我選Python
引言
前文傳送門
接觸一門新的語言,肯定要先了解它的基礎(chǔ)數(shù)據(jù)類型。啥食零?你問我為啥要先了解基礎(chǔ)數(shù)據(jù)類型?
為了你的生命安全寂屏,還是乖乖聽我 BB 吧贰谣,別想那些有的沒的。
Python 擁有著很多的基礎(chǔ)數(shù)據(jù)類型迁霎,那么吱抚,什么是數(shù)據(jù)類型呢?
打開百度考廉,隨手一個 Copy:
數(shù)據(jù)類型在數(shù)據(jù)結(jié)構(gòu)中的定義是一個值的集合以及定義在這個值集上的一組操作秘豹。
變量是用來存儲值的所在處,它們有名字和數(shù)據(jù)類型昌粤。變量的數(shù)據(jù)類型決定了如何將代表這些值的位存儲到計算機(jī)的內(nèi)存中既绕。
小編你別跑啄刹,看我不打死你,數(shù)據(jù)類型還沒搞清楚岸更,你又提出來一個變量的概念
當(dāng)然鸵膏,如果你學(xué)過編程語言膊升,比如計算機(jī)等級考試中的 C 語言怎炊,這兩個概念并不難理解。
如果你沒有學(xué)過廓译,那么就有點難了评肆,畢竟基礎(chǔ)概念永遠(yuǎn)都是最難解釋的。
想必大家都喝過奶茶非区。
在奶茶店買奶茶的時候會有小杯瓜挽、中杯、大杯征绸。
這里的小杯久橙、中杯、大杯就是數(shù)據(jù)類型管怠,而其中盛放的奶茶就是變量淆衷,奶茶的名稱就是變量名。
是不是這下好理解多了渤弛?
數(shù)字
在 Python 的數(shù)字有 4 種數(shù)據(jù)類型祝拯,分別為:
- int(有符號整型)
- long(長整型)
- float(浮點型)
- complex(復(fù)數(shù))
小明提問:蝦米?一個數(shù)字都能整出來這么多類型她肯,莫不是你在忽悠我吧佳头?
小明同學(xué),你就不能先靜靜聽我 BB 完么晴氨。
Python 為我們提供了一個函數(shù) type()
康嘉,通過這個函數(shù)我們可以獲取到當(dāng)前的數(shù)據(jù)類型。示例如下:
print(type(123))
print(type(123.0))
print(type('123'))
print(type("123"))
上面示例的運行結(jié)果如下:
<class 'int'>
<class 'float'>
<class 'str'>
<class 'str'>
可以得出的結(jié)論是:
123 是整形(int)
123.0 是浮點型(float)
'123' 和 "123" 的類型是一致的籽前,都是字符串 str(注意亭珍,有單雙引號,如果無引號則不會認(rèn)為是字符串類型)
我們接著使用另一個函數(shù) isinstance() 聚假,這個函數(shù)的作用其實從字面意思就能看出來块蚌,判斷一個對象是否是一個已知的類型,具體語法如下:
isinstance(object, classinfo)
- object -- 實例對象膘格。
- classinfo -- 可以是直接或間接類名峭范、基本類型或者由它們組成的元組。
示例代碼如下:
print(isinstance(123, int))
print(isinstance(123.0, float))
print(isinstance('123', str))
測試結(jié)果如下:
True
True
True
整形
整形的意思就是整數(shù)瘪贱,例如:
-1纱控,-10辆毡,1,2333333333之類的甜害。
至于長度有多少舶掖,我們做個測試好了,示例代碼如下:
print(10**1000)
**
的含義是次方尔店,上面這個示例代碼的意思就是 10 的 1000 次方眨攘,顯示結(jié)果如下:
10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
具體有多少個 0 我已經(jīng)不想數(shù)了,反正這么長肯定夠用了吧嚣州。
進(jìn)制
講到數(shù)字就不得不提的另一個概念就是進(jìn)制鲫售,想必進(jìn)制大家都清楚,計算機(jī)的世界中比較常見的有二進(jìn)制该肴,生活中比較常聽到的有八進(jìn)制和十六進(jìn)制情竹。
具體的表示方法如下:
- 十進(jìn)制:正常寫就 ok ,所有的數(shù)字都默認(rèn)是十進(jìn)制的匀哄。
- 二進(jìn)制:在最前面添加
0b
的前綴秦效,并且組成部分必須只能由 0 或者 1 組成(廢話,有其他數(shù)字還叫二進(jìn)制么)涎嚼,如: 0b10101010101 - 八進(jìn)制:在最前面添加
0o
的前綴阱州,并且組成部分必須只能有 0~7 的數(shù)字組成,如:0o12345670 - 十六進(jìn)制:在最前面添加
0x
的前綴铸抑,并且組成部分由 0~9 和 A~F 組成贡耽,如:0xdb273dc(注意:字母大小寫不做區(qū)分,也可以寫成 0xDB273DC )
浮點數(shù)
簡單來講浮點數(shù)就是帶小數(shù)點的數(shù)字
注意:浮點數(shù)只能是十進(jìn)制的數(shù)字
其實鹊汛,浮點數(shù)還包括分?jǐn)?shù)蒲赂,示例如下:
print(1/2)
print(1/3)
print(1/6)
結(jié)果如下:
0.5
0.3333333333333333
0.16666666666666666
因為是無限循環(huán)小數(shù),所以會存在誤差刁憋。
復(fù)數(shù)
來滥嘴,先復(fù)習(xí)一波上初中的基礎(chǔ)概念:
- 有理數(shù):有理數(shù)是指兩個整數(shù)的比。有理數(shù)是整數(shù)和分?jǐn)?shù)的集合至耻。簡單來講就是整數(shù) + 有限或者無限循環(huán)小數(shù)若皱。
- 無理數(shù):簡單講就是無限不循環(huán)小數(shù)。
有理數(shù)和無理數(shù)加在一起成為實數(shù)尘颓,在實數(shù)之外還有一種叫做復(fù)數(shù)走触。
- 復(fù)數(shù):我們把形如 z = a + bi(a,b均為實數(shù))的數(shù)稱為復(fù)數(shù),其中 a 稱為實部疤苹, b 稱為虛部互广, i 稱為虛數(shù)單位。
想要回憶更多的內(nèi)容請各位自行百度吧。
在 Python 中惫皱,復(fù)數(shù)的表現(xiàn)方式如下:
print(1+1j)
print(type(1+1j))
結(jié)果如下:
(1+1j)
<class 'complex'>
概念里都講了像樊,復(fù)數(shù)是有實部和虛部的,那在 Python 中如何獲取呢旅敷?示例如下:
print((2.46+1.37j).real)
print((2.46+1.37j).imag)
總感覺學(xué) Python 是在考驗我的英語水平生棍, real
真實的, imag
虛假的媳谁。
布爾值
布爾值其實就兩個值涂滴,對或者錯,true or false 韩脑。
在很多其他的變成語言中氢妈,布爾值都會列為一個單獨的數(shù)據(jù)類型,但是 Python 并沒有這么做段多。
那么,布爾值有什么用呢壮吩?
這個用處可就大了进苍,比如會頻繁的使用在各種邏輯判斷中,這個當(dāng)然我們后面再聊鸭叙。
先看下如何簡單的使用吧觉啊,示例如下:
print(123 == 123.0)
print(123 == '123')
測試結(jié)果:
True
False
What?123 竟然會等于 123.0 沈贝,不是說他們兩個類型不一致么杠人?
注意: ==
只能用來做數(shù)值的比較,并不會比較當(dāng)前的數(shù)據(jù)類型宋下,所以 123 和 123.0 是相等的嗡善。而 '123' 不等于 123 則是因為 '123' 是字符串,不能數(shù)值運算学歧,而 123 是數(shù)字罩引。
示例代碼
本系列的所有代碼小編都會放在代碼管理倉庫 Github 和 Gitee 上,方便大家取用枝笨。