當前位置:
首頁 > 最新 > 數——萬物之始:整數int、浮點數float與複數complex

數——萬物之始:整數int、浮點數float與複數complex

經過上幾期的的介紹,相信大家已經準備好上車了吧?好,我們馬上開始 Python 之旅吧!這期我們主要會用到 IDLE 的交互界面,就是有箭頭的那個,文中顯示的代碼,和你的交互界面應該是一致的。

表示數的數據類型——整數、浮點數、複數

我們先從整數這個數據類型入手。整數(integer)就是像 -3、-2、-1、0、1、2、3、10 這樣的數。以下代碼將變數 賦值為整數 。

在 Python 中,一切都是對象,整數也不例外。什麼是對象?哈哈,具體我們會在後面解釋。

在這裡,我們可以把 視為一張標籤紙,貼在了整數對象 的上面。

那麼如果我寫以下的代碼

最後 是什麼?可以取出來看下:

是 。這個情景可以想像為,把 這個標籤從整數 上面取下來,然後貼到 上面。我們把 這類東西叫做變數(variables)

第一個異常

再問,如果我想知道有沒有 ,那怎麼辦呢?取出來看下吧。

看到系統返回了一堆紅字。它們叫異常(Exception),系統的這個行為叫拋出異常(raise Exception)。這是在告訴你,你的代碼錯了哦。錯在哪?英文有提示。

是異常的名字,它可是有大用處哦,在錯誤處理中十分重要,在此先賣個關子哈。 是異常的具體內容,系統是在說,你還沒有告訴我 boy 這個標籤貼的是啥呢。

我們可以用以下的代碼告訴系統。

這時,系統就知道了, 是浮點數 。也就是說,你要先告訴系統, 是 ,系統才不會拋出異常。

的使用

《西遊記》中記載了一種法寶,名叫照妖鏡,能照出一隻妖怪的真身。

而Python中也有這樣一種法寶:

用他來看 和 的真身,會發現一個是 ,一個是 。這就是他們的類型啦。

我們知道,就是整數 integer 的縮寫。

那 呢?就是浮點數的意思,因其小數點可以左右漂浮,從而表示更大或更小的數而得名。在更古老的編程語言里,除了 、 兩種表示實數的類型外,還有 long、long long、short、double、long double等等。不過,Python 的設計者 Guido van Rossum 等人為了簡化概念,硬是把這些亂七八糟的數據類型合成了兩種。

當然,Python 還可以使用複數

不過日常編程比較少使用這個數據類型。

數的基礎運算

有了整數和浮點數兩種數據類型,我們就可以把 Python 當計算器用啦。

這裡要注意 這個除法運算。在 Python 2.x 中,如果我們這樣打,會出現以下的結果。

不要以為系統抽風了, 的確等於 哦。為什麼?因為商的整數部分就是 啊!

商 2 余 1。Python 2.x 實施的是int / int = int,所以得出來的結果就是 。要使用 Python 3.x 接近人類理解的除法,可以這樣:

如果商和餘數都想要呢?一個辦法是使用 (地板除 floordiv) 運算和 (求余/求模 modulus)運算。現在我們返回 Python 3.x。

另外一種就是 函數啦。將被除數和除數用半形逗號隔開,放在括弧內,其實這是給 函數傳遞了兩個參數。關於函數的參數,會在以後的某個分享中談及。

咦,可是我明明沒有定義 函數和 函數啊,為什麼這裡能用的?因為這兩個是Python的內置函數(built-in functions),當我們使用 Python 時,系統就會把內置函數都載入好,直接調用就可以了。

Python 的內置函數有許多,一下子是說不過來的。小叮噹會在以後的分享中逐漸提到~

回到運算符。

還有一種運算是冪運算(power)

在多個運算符同時出現的時候,運算符的運算順序與數學一致(中括弧、大括弧都用小括弧代替)

此外, 庫有這些運算符的對應函數。

注意這裡用 或 的時候, 被轉化成了 。

以類型(如整數 、浮點數 )命名的內置函數有時也叫工廠函數,因為函數的調用過程就像輸入原料,產出產品一樣。

import是什麼?

咦,是什麼意思呢?我們可以理解為,有人已經XXX.py里寫好了YYY。XXX.py存在於我們之前所設的環境變數目錄以及此py文件所在的目錄下。YYY可以是函數變數和我們以後會接觸到的。然後我們把它拿來用。後面的代表YYY文件下定義的所有東西。當然啦,如果我們只用到,也可以寫呢,關於 ,我們以後也會詳細解釋哦~

增量賦值運算符(augmented assignment operator)

Python 有一種運算符,能在運算的同時給自己賦值。

這和以下的代碼是一樣的

有些同學可能會問,第二段的第二句的兩個 是什麼意思?這裡我們分兩步理解:

第一步:因為 ,所以 等於 ;

第二步;把這個 通過賦值運算符 =,用一個變數 貼在它上面,現在 等於 。

所以,等號左邊的 是新的 ,右邊的 是舊的 。

執行+=操作時,也是這樣分步運算的。所以以下代碼會出錯

錯誤在於,在賦值的時候出現了 這樣的語句。 並不是變數,而是一個整數對象。所以不能給它賦值~

當然了, 還有一大堆好朋友。

嗯…… 和 的意義不太一樣呢。而且 i 開頭的函數要賦值回 a ,感覺它們……沒啥用,還是用符號來得快捷。

增量賦值運算符似乎是無法連續調用的,因此不存在順序的問題。

0.1 + 0.2 != 0.3

有沒有發現,小叮噹從頭到尾都不敢用 演示運算?因為這裡有個坑!

What? ?是眼睛瞎了嗎?不!你沒瞎! 的確不等於 !在解答這個問題之前。我們先來看幾種特別的數。(其實小叮噹並不打算在本期解決這個問題,因為這個問題涉及的東西實在太多!先看看下面兩種數,與這個問題有千絲萬縷的關係~)

科學記數法

不知道大家還記不記得初中時學過的科學記數法?比如 這個整數,可以表示為 ,讀作 1 乘 10 的 2 次方。其中 10 的 n 次冪又可以用 或 來表示。所以,

科學計數法表示出來的數都是浮點數類型 。

二進位、八進位、十六進位

可以看到,Python 使用 來表示二進位,數里的每一位代表 2 的 n 次冪,比如 這個二進位數字,就表示成

因為 0 乘任何數得 0,所以簡化成:

同理,Python 表示八進位和十六進位的數是這樣的:

所謂八進位,就是逢八進一,所以在數字表裡是沒有 8 這個數的,Python 使用 來表示八進位

十六進位的數,1-9 往上就用 (大小寫均可)來表示了, 代表 15,數字表裡沒有 g 這個數。Python 使用 0x 來表示十六進位。

二進位、八進位、十六進位的數都是整數類型 。

那麼,如果我想把十進位數字轉成其他進位,應該怎麼做呢?答案是使用 函數。

就是 binary, 就是 octal, 就是 hexidecimal。學好英文是不是很重要!!

另外一種方法,是給 函數傳入第二個參數 ……

注意第一個參數一定要用單引號或雙引號括起來,其實這是字元串類型的表達方法。第二個參數 ,就是轉換的進位啦。可以使用 、、等標識符,但是,如果將本屬於一個進位的標識符用到另外一個進位身上,就會報錯啦~ 這種傳遞參數的方式,叫關鍵字參數,在細講函數的時候會說到。

呼~講了好多哦……先這樣吧。下期,我們再來看十進位小數轉化成二進位和 的問題。

本期涉及的內容有:

稍微提及的內容有:

快找找這些概念你是否明白了呢?好啦,下次再見啦!

References:

[1] L. Ramalho, Fluent Python, Sebastopol, U.S.: O』Reilly Media, Inc., 2015.


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 小小噢遊戲 的精彩文章:

TAG:小小噢遊戲 |