This is a python - 基本數值運算與邏輯判斷

星期日 31 Mar 2019   even  
教學

This is a python.

歡迎你們正式來學習python,雖然python相較於其他程式語言很直觀、很簡單,但是對於完全沒有任何程式背景的朋友們來說,還是需要一些時間慢慢上手。

就如同學習英文一開始從英文字母和最簡單的句子: This is a pen. 開始,我稱呼這篇教學為This is a python。

我們將會從python最基本中的基本操作開始,包含最基本的數值類型、四則運算、邏輯判斷,內容可能會有點多,但是都相當的直觀,就和一般基礎數學會上到的內容一樣,而python使用的語法(syntax)也是選擇跟一般數學運算使用的符號類似,因此應該很容易看懂。

數值類型

python為物件導向語言(object orientaion programming OOP),在python的世界裡,所有的東西都是某種類型(class or type)的物件(object)。

其中數值類型共有三種,int(整數)、float(浮點數)、complex(複數),complex使用情況較少,我在此只介紹int和float。

我們可以使用type顯示目前數值的類型,如下:

print(type(3))
print(type(-999))
print(type(3.0))

<class 'int'>
<class 'int'>
<class 'float'>

3為整數、-999為整數、3.0為浮點數,所有帶有小數點的都是浮點數。

如果想進行類型轉換的話,可以直接使用int()、float(),如下:

print(int(4.99))
print(int(4.01))
print(float(5))

4
4
5.0

將float轉成int時會無條件捨棄小數喔。

指派符號

最基本的指派符號 = ,將數值指派給某個變數(variable)。

python的變數為動態類型(dynamic typing),變數的類型會隨著現在指派的數值類型而跟著改變。

例如:

a = 3
print(type(a))
a = 3.5
print(type(a))

<class 'int'>
<class 'float'>

如果你接觸過C語言,你會發覺這實在是非常簡便,但也因此造成python的運行速度緩慢,執行時需要一再的檢查目前的類型。

python屬於比較方便人類看得懂,但是比較不方便電腦看得懂的程式語言。

運算符號

python最基本的數學運算,就和一般的數學一模一樣(+ - * /),負負得正,先乘除後加減,括號的先處理。

以下的例子,你可以判斷得出來b、c、d、e分別為多少嗎?

a = 3
b = a + 2 * 10
c = 3 * a + 4
d = (10 + 2) / 3
e = 3 - - - - - 8
print(b)
print(c)
print(d)
print(e)

23
13
4.0
-5

除了+-*/外,還有**、//、 %這三個基本的算術運算子。

** 指數

// 整數除法 (小數點無條件捨去)

% 餘數

print(2**3) #2的三次方
print(8**(1/3)) #8的三分之一次方,也就是立方根
print(15//6)
print(15%6)

8
2.0
2
3

另外,float使用上要注意,有時候會變成這樣的數值喔!

print(1.1+2.2)
print(0.9+1.1)

3.3000000000000003
2.0

最後,運算符號都可以和指派符號(=)合在一起使用。

如: +=、-=、**=等等。

a = 10
b = 10
a += 8 # 相等於 a = a + 8
print(a)
b **= 3
print(b)

18
1000

Bonus Tip: 如何寫註解 (comment)

python的程式碼裡面,標註了#之後的內容都不會被運行,通常用來寫註解,方便讓人看得懂。

如果要寫多行的註解的話,使用兩個'''隔開一段區間,在這個區間內寫註解,如下

'''
多行註解
這是多行註解
'''

a = 10
# a = 12 這是單行註解,不會被執行

'''
因為 a = 12 是放在comment裡
,所以a依然是原來的10
'''

print(a)

10

關係判斷

用來判斷符號左右兩數值的關係,如果為真則會顯示True,反之則為False。

== 相等

!= 不相等

> 大於

< 小於

>= 大於等於

<= 大於等於

a = 10
b = 11
c = 12
print(a == b-1)
print(c < b)

True
False

另外,python的關係判斷可以連在一起使用,如:

a = 10 < 12 <= 30
b = 8
c = 25 >= b == 8 >= 4 > 1
print(a)
print(c)

True
True

邏輯判斷

python的布林值 (boolen value)為True或False,真的或假的,用來顯示關係判斷的結果,也是一種類型(bool)。

print(type(True)) #True 為bool類的物件

<class 'bool'>

而布林值之間也有最基本的運算,且and以及或or,python使用的語法就是and、or。

and 和 or 的規則就和你在數學課學的一樣,如下:

AND真值表,只有雙方皆為真時,才為真。
True False
True True False
False False False
OR真值表,只有雙方皆為假時,才為假。
True False
True True True
False True False

另外如果要將True轉成False,只需要加上not。

以下是python使用and、or、not的範例程式碼,你可以判斷得出結果為何嗎?

print(5 > 4 and -1 > -3)  #True and True
print(not 5 > 4 or -1 > -3) # not True or True == False or True
print(not 1 > 100 and not -100 > -1 ) # not False and not False == True and True

True
True
True

將數值轉換成布林值時,所有非0的數值都會被轉成True,而0會被轉成False。

將布林值轉回數值時,True會變成1,False會轉為0。

可以藉此特性進行四則運算,如下:

a = (True + True) * (False + True)
print(a)
print(bool(1))
print(bool(10-10))
print(bool(0.2) + bool(0) + bool(33926))

2
True
False
2

運算符號優先順序

最後,上面介紹了一大堆運算符號與用法,但是,當一連串的運行符號擺在一起時,python會優先運行哪一項呢?

這時候就必須了解運算符號的優先順序了,優先順序高的先執行,而如果是同等級的話就是由左至右來執行。

下表是本章節所介紹的運算符號優先順序總整理:

python運算符號優先順序
順位 符號 描述 舉例 答案
0 () 在()裡的最優先執行 (5 + 8) * 3 39
1 ** 指數運算,優於其他四則運算 2 ** 2 + 2 ** 3 12
2 *, /, //, % 乘、除、整數除法、餘數,優於加減 5 + 8 * 3 29
3 +, - 數值運算完後,才去進行關係判斷 5 + 8 == 13 True
4 ==, !=, >, <, >=, <= 比較符號左右數值的關係 5 + 8 == 13 and 4 * 3 == 12 True
5 not not True == False, not False == True not False and True True
6 and 只有真真為真 not True or True and False False
7 or 只有假假為假 not (True or True) or True True

總結

以上這些就是這次的教學,是不是就跟上基礎數學課一樣呢?

很簡單,但是有點多,事實上還有一些較少用到運算符號沒介紹到唷,如: bitwise operators等。

我在這次教學只介紹最常用的基本運算符號。

總之,感謝您的閱讀,希望你有學到些什麼,祝你有美好的一天,我們下次見,bye~ bye~

python新手教學
Why python
Hello Python!
This is a python - 基本數值運算與邏輯判斷
[Python, 的, list, 教學 ]
"python的字串教學"
python的迴圈與流程控制
python的(tuple)與{dict}
def 一個python的自訂函數:
import套件到你的python
python的嘗試try與錯誤error處理
Python之禪

相關文章:

>