2019年7月23日 星期二

手把手學Python - 最簡單的資料型別 整數(int) 與 字串(str)

好了, 環境建置完畢, 接下來, 我們就開始朝程式設計的路前進吧。

這篇文章裡, 我們應該會利用 IDLE 來實作, 如果你忘了, 就先去看看這篇文章(手把手學Python - 第一支小程式)


程式設計的過程中, 其實對於各種資料不斷"加工", 讓它們成為我們期待的數學模型。這也就是為什麼不少人都會說, 學好數學對於學程式是很重要的事。在寫程式的過程中, 所有的資料都要有各自的型別。對於電腦來說, 整數、小數、字母、字串都是不相同的"東西"。所以操作起來也都會不同。

舉個簡單的例子來說,

  • 整數的 12 + 34 你會得到 46
  • 字串的 "12" + "34" 你會得到 "1234"

你可以自行嚐試看看, 就會發現明明都是 12 和 34 用 "+" 這個運算子結合, 得到的結果卻不一樣。所以對我們來說, 要寫程式就要先了解各種不同的資料結構對電腦來說, 會如何被操作。然而, 若是要像傳統的教學裡, 把所有的資料型別都介紹完, 應該會有不少人會打退堂鼓, 所以我們就先從最簡單而且常用的兩種資料型別來學起。
  • 整數
    整數(integer), 在不少程式語言裡都被簡化成 int。它其實就是我們在日常生活裡用的整數, 包含了正整數(1, 2, 3, ...)、0 以及負整數(-1, -2, -3, ...)。在比較低階的語言(例如 C 語言)裡, 當你作了像 3/2 這樣的操作, 卻沒放到對的型別裡(浮點運算 floating point), 程式就會幫你無條件捨去後, 再變成整數。但是在 Python 裡, 它會自行幫你轉換型別, 這也是 Python 對於初學者比較友善的地方。
  • 字串
    字串(string), 被簡化為 str。也就是我們日常在用的句子, 除了英文外, 在 Python 裡也可以輸入中文。但中文的編碼有 Big5 和 UTF-8 的不同, 所以個人建議, 初學的時候, 請儘量用英文吧。在 Python 裡, 要表示一個字串, 我們會以成對的單引號, 或是雙引號表示。如 "This is a book"、'This is a book'。
    比較特別的, 是當你的字串裡會出現單引號(')或是雙引號(")時, 你可以用下列的方法表示。
    'This\'s a book'
    "This's a book"
    "I say \"yes\""
    'I say "yes"'


    也就是說, 你可以利用單雙引號的交替使用, 或者在字中裡的單引號前加上反斜線(\)來表示
在 Python 中, 整數常用到的運算表列如下

運算子意義運算結果
+加法4 + 26
-減法4 - 22
*乘法4 * 28
/除法4 / 22 (註1)
**指數運算(註2)4 ** 216
//整數除法的商數17 // 53
%整數除法的餘數17 % 52
註1:除法如果得到的結果不是整數, 結果會自動轉換成浮點運算(也就是小數)。
註2:在 Python 和一般習慣不同, 它的指數運算是 ** 而非常用的 ^, 它的 ^ 被用在位元(二進位)運算的加法, 這是特別要注意的地方。

這些請在 IDLE 裡, 自己試試看, 你會更了解這些整數的運算。其實, 就因為在 Python 裡, 整數的除法如果出現小數, 就會自動轉成浮點運算, 所以在官方的文件裡, 就沒有特別提到整數這種資料型別, 而是把整數和小數合併為數(Number)。

而字串的運算, 其實要到後面, 我們提到串列(List), 才會有比較詳細的介紹, 在這裡, 你大概只需要學到兩種就可以了。

  1. 加法(+)

    "123" + "234" = "123234"

    在 Python 裡, 字串的加法也就是字串的合併。
  2. 乘法(*)

    "123" * 3 = "123123123"

    當你把一個字串乘以一個正整數 n 時, 會把同一個字串複製  n 次。如果你後面乘的不是正整數而是負整數, 其實你自己可以試試看。
最後提兩個很重要的函數
  1. int()
    當你把一個字串 "1234" 放到函數 int() 裡, 如 int("1234"), 此時你就會得到一個整數 1234。這在下一章, 我們要使用 input() 讓使用者可以輸入數字時, 會是個很重要的函數。

    另外, int() 的另一個功用, 是幫你做取整數的部份。也就是你會看到
    int(17.5) = 17
    int(17.4) = 17
    int(-17.5) = -17
    int(-17.4) = -17
    這在某些運算上, 是一個很好用的工具, 只是要很小心負的部份。
  2. str()
    當你把一個整數 1234 放到函數 str() 裡, 如 str(1234), 會得到一個字串 "1234"。這部份則是在下一章, 我們要使用 print() 秀出程式結果時, 會是一個很重要的技巧。
好了, 就先提到這裡, 個人建議學程式, 最重要的, 是多多嚐試。要不要試著想想, 怎麼利用整數的運算, 實作出四捨五入法? 如果你覺得你會操作, 不妨把你的答案寫在下面的推文裡。

沒有留言: