--- tags: Python --- # 運算子 ## 賦值運算子 在Python中最早會使用到的運算子就是賦值運算子`=`了, 他和數學上的等於是不一樣的,賦值運算子代表的是右邊的值丟到左邊的變數中, 例如: ```python= s = input() ``` 在這段程式碼中,`input()`會回傳一段字串,也就是使用者的輸入, 賦值運算子做的事情就是將`input()`回傳的`值(輸入的字串)`丟進左邊的變數`s`之中。 --- ## 算術運算子 包含`+` `-` `*` `/` `%` `//` `**` 前面四者分別與數學上的加、減、乘、除相同。 `%`是代表取餘數,例如`17 % 3`會得到`2`。 `//`是代表整數除法,小數點後全部無條件捨去,例如`17 // 3`會得到`5`。 `**`是代表次方,左邊為底數,右邊為指數,例如`2**5`會得到`32`。 --- ## 關係運算子 包含 `>` `<` `>=` `<=` `==` `!=` 前面四者分別與數學上的大於、小於、大於等於、小於等於相同。 為了將賦值運算子與關係判斷做區隔,所以關係判斷的等於改採用`==`, 而`!=`則是代表不等於,驚嘆號在程式中常常是「非」的意思。 --- ## 邏輯運算子 包含 `and` `or` `not` 這三個 ~~**`看起來不太像運算子的`**~~ 運算子分別代表了且、或、非的邏輯判斷。 `and`是前後兩個條件都必須為`True`,結果才會是`True`,其餘皆為`False`。 `or`則是前後兩個條件只要有一個是`True`結果就是`True`,兩個都是`False`結果才是`False`。 `not`則是將結果反轉,`True`與`False`互換。 ### 短路運算 Python的邏輯判斷使用的是**短路運算**`Short Circuit Evaluation`, 代表若前者的條件已經可以決定整個運算式的結果,便不會去判斷後者。 即`and`邏輯只要前者為`False`,就直接回傳`False`, 而`or`邏輯只要前者為`True`,就直接回傳`True`, 以上兩者**都不會再去判斷後者的真假值**, 這帶給使用者很大的便利(可以用這項特性防止許多問題發生)。 --- ## 位元運算子 包含 `&` `|` `~` `^` `>>` `<<` 詳見 [位元運算](https://hackmd.io/@evleetAcRa2occwquJY-jw/位元運算/)。 --- ## 複合指定運算子 包含 `+=` `-=` `*=` `/=` `%=` `//=` `**=` `&=` `|=` `~=` `^=` `>>=` `<<=` `a ()= b` 即為 `a = a () b`的簡寫,其中`()`可以替換成上述任一種運算子。 --- ## 成員運算子、身分運算子 成員運算子`in` `not in` `in` 用來判斷複合資料型態變數中是否包含指定元素, 身分運算子`is` `is not` `is` 用來判斷兩個變數的記憶體位址是否相同, 加上`not`的後者則是輸出與原本相反的結果。