官术网_书友最值得收藏!

2.1 常用數(shù)值類型

新建并打開一個Jupyter Notebook文件,我們隨意輸入一些表達式:

可以看到Out就是表達式的結果,這跟在第1章做過的事情沒有什么區(qū)別,接下來我們看看這個過程背后的知識有哪些。

如果仔細觀察會發(fā)現(xiàn),上面的運算中出現(xiàn)了整數(shù)和小數(shù)。當然從數(shù)學的角度來說它們都是實數(shù)完全沒有區(qū)別,但是計算機只能處理離散有限的數(shù)據(jù),小數(shù)因為有可能無限長,所以精度不可能無限高,而整數(shù)只要空間足夠總能表示出精確值,因此整數(shù)和實數(shù)應該是兩種不同的類型。

數(shù)學中的實數(shù)在計算機領域一般用“浮點數(shù)”來表達,從字面上理解就是小數(shù)點位置可變的小數(shù),也就是說浮點數(shù)的整數(shù)部分和小數(shù)部分的位數(shù)是不固定的,當然也有位數(shù)固定的定點數(shù),不過定點數(shù)實際上就是整數(shù)除以2的冪而已。

所以Python實際上有三種內置的數(shù)值類型,分別是整型(integer)、浮點數(shù)(float)和復數(shù)(complex)。此外還有一種特殊的類型叫布爾類型(bool)。這些數(shù)據(jù)類型都是Python的基本數(shù)據(jù)類型。

2.1.1 整型(integer)

從數(shù)學的角度來說,整型就是整數(shù),下面敘述的過程中也不再嚴格區(qū)分這兩種說法。

一般來說一個整數(shù)占用的內存空間是固定的,所以范圍一般是固定的,比如在C++中一個int在32位平臺上占用4個字節(jié)也就是32位,表示整數(shù)的范圍是-2147483648~2147483647,如果溢出了就會損失精度。當然有人會說只要位數(shù)隨著輸入動態(tài)變化不就解決了,但是事實上動態(tài)變化總是伴隨著代價的,所以C++為了高效選擇的是靜態(tài)分配空間。不過Python從易用性出發(fā)選擇的是動態(tài)分配空間,所以Python的整數(shù)是沒有范圍的,這跟數(shù)學中的概念是完全一致的,只要是整數(shù)運算,總可以確信結果不會溢出,從而一定是正確的。

所以我們可以隨意地進行一些整數(shù)運算,比如:

當然提到整數(shù)就不得不提到進制轉換,我們首先看看不同進制的數(shù)字在Python中是怎么表示的:

但是如果數(shù)值并不由我們輸入,怎么轉換呢?Python提供了一些方便的內置函數(shù):

注意這里hex( )、oct( )、bin( )、int( )都是函數(shù),括號內用逗號隔開的是參數(shù),雖然還沒有介紹Python的函數(shù),但是這里完全可以當作數(shù)學中函數(shù)的形式來理解,此外用單引號或者雙引號括起來的"0xA""0b111"表示的是字符串,后面也會介紹。這里有一個細節(jié)是hex( )、oct( )、bin( )返回的都是字符串,而int( )返回的是一個整數(shù)。

此外要注意的是,進制只改變數(shù)字的表達形式,并不改變其大小。

2.1.2 浮點型(float)

在Python中輸入浮點數(shù)的方法有以下幾種:

要注意的是Python中的浮點數(shù)精度是有限的,也就是說有效數(shù)字位數(shù)不是無限的,所以浮點數(shù)過大會引起上溢出為+inf或-inf,過小則會引起下溢出為0.0。同時浮點數(shù)的表示支持科學計數(shù)法,可以用e或E加上指數(shù)來表示,比如2.5e10就表示2.5?1010

2.1.3 復數(shù)類型(complex)

Python內置了對復數(shù)類型的支持,對于科學計算來說是非常方便的。Python中輸入復數(shù)的方法為“實部+虛部j”,注意與數(shù)學中常用i來表示復數(shù)單位不同,Python使用j來表示,比如:

這里要強調的一點是,如果想創(chuàng)建一個虛部為0的復數(shù),一定要指定虛部為0,不然得到的會是一個整型。

2.1.4 布爾型(bool)

布爾型是一種特殊的數(shù)值,它只有兩種值,分別是TrueFalse。注意這里要大寫首字母,因為Python是大小寫敏感的語言。在下面講解二元運算符的時候,我們會看到布爾型的用法和意義。

主站蜘蛛池模板: 瓦房店市| 开封市| 张家口市| 湖南省| 成武县| 耿马| 乐至县| 襄城县| 铜鼓县| 苗栗县| 乐清市| 高邮市| 南宁市| 樟树市| 怀化市| 司法| 潍坊市| 南华县| 读书| 天台县| 赞皇县| 青田县| 克山县| 博罗县| 黔西| 固安县| 淄博市| 九寨沟县| 霸州市| 汽车| 津南区| 鸡泽县| 镇雄县| 宜宾市| 普格县| 绥化市| 呼图壁县| 黄骅市| 隆林| 贞丰县| 九台市|