---
# System prepended metadata

title: 'Python : 運算子'
tags: [python, 九年級]

---

#  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
