# Python : 運算子 ###### tags: `python` `九年級` + 一個陳述(statement)的運算式中需要有運算元(數值)與運算子(數學運算符號) ## 一、 算數運算子 | 運算子 | 說明 |範例|結果| |:------:|:------:|:------:|:------:| |+|加法|5+8|13| |-|減法|5-8|-3| |*|乘法|5*8|40| |/|浮點數除法|5/8|0.625| |//|整數(捨去)除法|5//8|0| |%|取餘數|5%8|5| |**|乘冪|5**8|390625| ### 範例 1-1 ```python= a = 2**10 #2的10次方 b = 5.7//3 #整數除法 c = 5.7/3 #浮點數除法 d = 10%4 #取10除4後剩下的餘數 e = 1/2+3 #(1/2) + 3 f = 1/(2+3) print(a) print(b) print(c) print(d) print(e) print(f) ``` 結果: >1024 1.0 ==1.9000000000000001== 2 3.5 0.2 ___ :::info ### 浮點數誤差 + **觀察上題範例,python浮點數計算時會有==極小的誤差==**,大約低於10的15次方分之一 + 可以透過以下方式解決 + 1. 使用Round函數限制輸出位數 + 2. 使用字串轉換 `%.2f` ### ⭐ Round函數 + 傳回浮點數某個位數的四捨五入值 + round(浮點數,小數點位數) ### 範例 1-2 ```python= a=1.23456789 b=round(a,1) c=round(a,3) d=round(a,5) print(a) print(b) print(c) print(d) ``` 輸出: >1.23456789 1.2 1.235 1.23457 ### ⭐`%.2f` + 透過`%.2f`來使用字串轉換目標浮點數為指定位數 ### 範例 1-3 ```python= a=1.23456789 b= "%.1f" % (a) c= "%.3f" % (a) d= "%.5f" % (a) print(a) print(b) print(c) print(d) ``` 輸出: >1.23456789 1.2 1.235 1.23457 + 以上兩種方法都能==四捨五入至指定位數== + 請注意範例1-3的 `b`, `c`, `d` 皆為==字串==,如果需要變成浮點數需要透過資料轉換函數float() ::: ___ ## 二、指派運算子 |運算|運算子| |:------:|:------:| |指派|=| |加法指派|+=| |減法法指派|-=| |乘法指派|*=| |除法指派|/=| |餘數指派|%=| ```python= #指派運算子範例 a = 1 #設定變數a的數值為整數1 a += 5 #同等於 a = a+5 b = 7 b -= 10 #同等於 b = b-10 c = 9 c *= 20 #同等於 c = c*20 #分行輸出a,b,c數值 print("a的數值為 : ",a) print("b的數值為 : ",b) print("c的數值為 : ",c) ``` 輸出結果 > a的數值為 : 6 > b的數值為 : -3 > c的數值為 : 180 ___ ## 三、比較運算子 + 可以比較資料間的大小、是否相等、不相等 + 傳回結果為 `True`、`False` |運算|運算子| |:------:|:------:| |相等|==| |不等於|!=| |大於|>| |小於|<| |大於等於|>=| |小於等於|<=| ```python= a = 5 == 5 b = 6 > 3 c = 3 < 0.3 d = 6 != 5 e = "A" != "a" print(a) print(b) print(c) print(d) print(e) ``` 輸出: >True True False True True ___ ## 四、邏輯運算子 + 主要用途為條件判斷中 `True` `False`的運算 + 可以結合比較運算子使用 |運算|運算子| |:------:|:------:| |and|且| |or|或| |not|非| ### 範例 4-1 + `True` `False`邏輯運算 ```python= a = True b = False print(a or b) print(a and b) print(not a) print(not b) ``` 輸出: >True False False True ### 範例 4-2 + 結合比較運算子進行邏輯運算 ```python= c = 50-60 > 9 d = 2**10 >1000 print(c) print(d) print(c or d) print(c and d) print(not c) print(not d) ``` 輸出: >False True True False True False
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up