###### tags: `chapter 5` `Python`
# 5-1 關係&邏輯運算子 #
## 關係運算子 ##
寫程式時很常需要進行資料比對,不論是字串資料還是數值資料,所有的程式幾乎無法避免比較的過程,將兩者進行比對的工具我們稱為`關係運算子`,在數學上就是`<`、`>`等符號。以下列出所有python的關係運算子以及其功能。

基本上,關係運算子是用來判斷一件事使否成立,假設你給電腦`a > b`,他會告訴你這件事是成立還是不成立。如果今天a是20且b為10,那電腦會告訴你`True`,若兩者對調,則電腦會回傳`False`。
如果我們今天要判斷兩個數是否相等,那我們可以這麼做
```python
a = 10
b = 10
print(a == b)
# True
```
關係運算子就對應著現實世界的是非題,所有的是非題都可以用關係運算子來表示,不論他有多複雜,有幾個條件,當出現一次要判斷多個條件的時候,我們可以搭配邏輯運算子來進行判斷。
## 邏輯運算子 ##
邏輯運算子是指電路學裡的邏輯閘(and、or、not),通常會和多個條件判斷式一起使用。
`and`:相當於'且',兩邊的事件必須同時成立(True),否則結果為不成立(False)。
例如:如果`你是男生`且`滿18歲`了,那你必須去當兵!

`or`:相當於'或',兩邊的事件最少要有一件成立(True),否則結果為不成立(False)。
例如:成功需要的是擁有`積極努力向上的心`或`一個有錢的爸爸`。

`not`:和上述兩個較不同,`not`會將條件判斷式的結果顛倒。
例如:將`2 > 3`的結果`False`轉變為`True`

在電腦世界,我們通常會將`True`表示為`1`,`False`表示為`0`。
## 範例 ##
有了上述兩個工具,我們可以組合稍微複雜一點的條件判斷式囉!
* 範例$1$
```python=
a = True
b = False
c = False
print(a != b and b == c)
# True
```
* 範例$2$
```python=
a = True
b = False
c = True
print(a != b and b == c and a != b)
# False
```