從零開始學Python (3) — 變數、型態、運算子:你的除法不是你的除法

Day 03 變數、型態、運算子:你的除法不是你的除法

Chih-Yu Lin

--

註:本篇文章同步刊載於iT邦幫忙,為鐵人賽之系列文章。
https://ithelp.ithome.com.tw/articles/10237877

從前從前,有個聰明的小男孩叫高斯,
有天老師有事情要忙,出了一道算術題給全班慢慢寫:
1+2+3+…+100 = ?
誰知道高斯馬上就將這個題目用簡單的乘法給迅速算出來了,
答案是(1+100) * 100 / 2 = 5050。

這告訴我們,做人不要太白目XD

以下我們使用上一篇文章的直譯器,來試看看Python的計算。
在Python中的四則運算,基本上跟我們所認知的四則運算大部分相同,
那麼,要在Python中計算上面的式子的話,也許你會想這樣寫:

>>> (1+100) * 100 / 2 
5050.0

咦?為什麼多一個小數點呢?
事實上,Python中在計算加減乘除的時候,只有除法比較特別,
當使用單斜線的除法時,計算結果會預設帶有小數點,
這種「型態」和原先的整數不同,
在Python中整數稱作int,而帶小數點的數字則稱為float。
所以說,你的除法不是你的除法XD
要取得相除的整數,請使用雙斜線:

>>> (1+100) * 100 // 2
5050

留意如果這當中你使用了帶小數點的數字,即便使用雙斜線,仍然會得到float的結果。

>>> (1+100) * 100 // 2.0
5050.0

(註:和Python不同,其他如Java/C++等語言,單斜線反而是取整數)

一般Python常見運算方式,除了加減乘除和整數除法外,
還有幾個常見的如% (取餘數運算子,如5 % 2會得到1)
\\ (取冪次,如a\\b會得到a的b次方)
以及其他很多有的沒有的東西,以後我們有機會用到的時候再行介紹XD

剛剛提到了型態(type),在Python中每個資料都有其型態,
用來表明它是什麼種類的東西,我們可以使用type()的方法,
簡單列出一些常見的型態:

--

--

Chih-Yu Lin

LeetCode、Python、Java、Android;第11屆iT邦幫忙鐵人賽Software Development組優選(從LeetCode學演算法);HiSKIO特約講師;課程優惠: https://bit.ly/lc2022all ;合作請洽: learnwithdesolve@gmail.com