第十屆鐵人賽 flask-restful DAY05-搞懂Python的內建型別

Python的內建型別

在介紹完Python的撰寫風格後,相信大家對Python已經有初步的認識,本章會開始介紹Python的基本語法,不過還是如同上一章一樣,若是已經會寫Python的讀者請當作複習,不便之處敬請見諒。

基本型別

雖然Python宣告變數時不需訂單變數型別、給值也不管變數型別,但是在型別的運算是不允許的,因此在這節先介紹Python有哪些型別,再介紹如何變數轉換型別。

型別種類

首先在這小節先羅列Python有哪些基本型別以及其用途:

  • 布林值bool這個型別就代表著真True或假False他是控制流程的好幫手
  • 整數int這個型別就是不帶小數點的數,例如123是整數
  • 浮點數float相當於整數,浮點數就是帶小數點的數,例如123.124是浮點數
  • 字串string字串就是我們一般在使用的文字,他的使用方式就是用單或雙引號把內容包起來,所以'123.123'則是字串

如何轉型

介紹完型別後需要介紹轉型,因為不同型別之間的運算處理可能會造成程序異常中斷,就讓大家看看以下例子:

level = '123'
num = 1 + (level * 1)

讀者可以試試看這段程式碼,相信大家可以看到執行到這程式碼會異常中段,並顯示錯誤訊息,如果要正常運作就需要轉型,轉型的方式依照欲轉換的目標型別羅列如下:

  • 布林bool()
  • 整數int()
  • 浮點數float()
  • 字串str()
    所以要解決上述式子所引起的異常中斷就需要改寫成下述內容
level = '123'
num = 1 + (int(level) * 1)

也就把變數level由字串轉型成整數。

集合型別

介紹完基本型別之後接著要介紹集合型別給各位讀者。

什麼是集合型別

集合型別跟基本型別之間的關係簡單講就是有許多基本型別組合而成就是集合型別。

集合型別的類型

  • 串列list一種由基本型別串成一串的型別
  • 元組tuple類似串列的型別,但是給定後不能更改其包含元素的內容的型別
  • 字典dict類似串列,但是他是由key對應的value的一種型別,而不像串列是由整數的索引值來對應到該位置變數的一種型別
  • 集合set類似串列但是其內元素不可重複

不可變型別與可變型別

這又是什麼

由變數是否可被改變來分類型別又可分為以上兩種型別,之後再分別介紹這兩種型別。

不可變型別

這型別的特性是你無法改變變數所包含資料的內容的一種型別,經過上述說明應該沒多少人能暸解在說什麼,所以先看看以下例子:

var = 1
var = 2

這例子是先產生記憶體空間存放1並把記憶體位置記載var內,當var改賦予2時是另外產生記憶體空間存放2而非改變原來的記憶體空間內的值,所以var的記憶體位置會改變為存放2的記憶體位址。解釋完什麼是不可變變數之後就來看看哪些是不可變變數,其內容如下:

  • 布林
  • 整數
  • 浮點數
  • 字串
  • 元組

可變變數

相對於不可變變數,可變變數可以更改所包含變數內容的一種型別,其內容如下:

  • 串列
  • 集合
  • 字典
    解釋完不可變型別後,要解釋可變型別就容易多了,可變變數就是當改變其內容時其記憶體位置不會變更而會直接更改內容物的值。

小結

好了終於介紹完Pyhton的型別了,因為這部分觀念問題很容易記錯,如果有說錯的還麻煩告訴我一聲,接下來會介紹Python的三種程式結構,敬請期待。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *