Python - 運算符:精通基礎的友好好指南

你好,有抱負的 Python 程式設計師!很高興能成為你在這個令人興奮的 Python 運算符世界之旅中的嚮導。作為一個教了多年程式設計的人,我可以向你保證,理解運算符就像學習工具箱中的基本工具一樣——一旦你掌握了它們,你會驚訝於你能夠建造什麼!

Python - Operators

Python 運算符是什麼?

在我們深入探討之前,讓我們從一個簡單的類比開始。將運算符想像成 Python 語言中的動詞。正如動詞使我們能在英語中表達動作一樣,運算符使我們能在 Python 中執行動作。它們是操作我們數據並幫助我們創建有意義程式的勤勞工作者。

Python 中的運算符類型

Python 提供了一組豐富的運算符,我們可以將它們分類為幾個類別。讓我們探索每種類型,並通過一些例子來讓你說:“啊哈!我現在明白了!”

1. 算術運算符

這些可能是你最熟悉的——它們就像你在學校學過的基本數學運算,但它們現在是你的編碼盟友!

# 加法
print(5 + 3)  # 輸出:8

# 減法
print(10 - 4)  # 輸出:6

# 乘法
print(3 * 4)  # 輸出:12

# 除法
print(20 / 5)  # 輸出:4.0

# 整除(向下取整到最接近的整數)
print(17 // 3)  # 輸出:5

# 餘數
print(17 % 3)  # 輸出:2

# 指數
print(2 ** 3)  # 輸出:8

這些運算符執行特定的數學運算。餘數運算符(%)特別有用,當你需要檢查一個數字是否為偶數或奇數時——這是在我的編碼課程中我經常使用的一個技巧!

2. 比較運算符

這些運算符就像程式設計比賽中的裁判——它們比較值並返回 TrueFalse

# 等於
print(5 == 5)  # 輸出:True

# 不等於
print(5 != 3)  # 輸出:True

# 大於
print(7 > 3)   # 輸出:True

# 小於
print(2 < 8)   # 輸出:True

# 大於或等於
print(5 >= 5)  # 輸出:True

# 小於或等於
print(3 <= 1)  # 輸出:False

我喜歡將這些運算符想成 Python 的“問題提問者”。他們一直在問:“這是真的嗎?”並給我們一個是或不是的答案。

3. 邏輯運算符

邏輯運算符是 Python 的決策者。它們幫助我們結合多個條件並做出複雜的決策。

# 並運算符
print(True and True)   # 輸出:True
print(True and False)  # 輸出:False

# 或運算符
print(True or False)   # 輸出:True
print(False or False)  # 輸出:False

# 否運算符
print(not True)        # 輸出:False
print(not False)       # 輸出:True

我經常告訴我的學生將 and 看作是一個嚴格的父親(兩個條件都必须為真),or 看作是一個寬容的父親(至少一個條件必須為真),而 not 看作是一個叛逆的青少年(總是反對!)。

4. 賦值運算符

這些運算符就像是 Python 的搬運工——它們將值賦給變量。

# 簡單賦值
x = 5
print(x)  # 輸出:5

# 加並賦值
x += 3    # 等同於 x = x + 3
print(x)  # 輸出:8

# 減並賦值
x -= 2    # 等同於 x = x - 2
print(x)  # 輸出:6

# 乘並賦值
x *= 2    # 等同於 x = x * 2
print(x)  # 輸出:12

# 除並賦值
x /= 3    # 等同於 x = x / 3
print(x)  # 輸出:4.0

這些運算符是真正的節時器。比起寫 x = x + 3,我們可以簡單地寫 x += 3。這就像是 Python 的說法:“我挺你,家人!”

5. 身份運算符

身份運算符用於比較兩個對象的記憶體位置。

# 是運算符
x = [1, 2, 3]
y = [1, 2, 3]
z = x

print(x is z)  # 輸出:True
print(x is y)  # 輸出:False
print(x == y)  # 輸出:True

# 不是運算符
print(x is not y)  # 輸出:True

is 運算符檢查兩個變量是否指的是記憶體中同一個對象。這就像問:“這兩個東西其實是同一個東西嗎?”這可能會很複雜,所以 我經常提醒我的學生使用 == 進行值比較,使用 is 進行身份比較。

6. 成員運算符

這些運算符就像俱樂部的門衛——他們檢查一個值是否為序列的成員。

# 在運算符
fruits = ['apple', 'banana', 'cherry']
print('banana' in fruits)  # 輸出:True

# 不在運算符
print('mango' not in fruits)  # 輸出:True

我喜歡在教學列表時使用這些運算符。它們使得檢查一個項目是否存在變得非常容易!

Python 運算符優先級

現在我們已經見過了所有的運算符,理解 Python 如何決定先評估哪個運算符是很重要的。這稱為運算符優先級,它就像是精緻 Python 派對上的 VIP 名單——有些運算符可以先進去!

以下是運算符優先級的表格,從最高到最低:

運算符 描述
() 括號
** 指數
+x, -x, ~x 一元加號、減號和位元NOT
*, /, //, % 乘法、除法、整除、餘數
+, - 加法、減法
<<, >> 位元位移
& 位元AND
^ 位元XOR
| 位元OR
==, !=, >, >=, <, <=, is, is not, in, not in 比較、身份、成員
not 邏輯NOT
and 邏輯AND
or 邏輯OR

記住,你可以總是使用括號來明確指定運算的順序。這就像給你的表達式的一部分一張 VIP 過通證一樣!

# 沒有括號
print(2 + 3 * 4)  # 輸出:14

# 有括號
print((2 + 3) * 4)  # 輸出:20

在第一個例子中,乘法具有更高的優先級,所以 3 * 4 先被評估。在第二個例子中,括號覆蓋了默認的優先級,所以加法先發生。

就這樣,各位!你們剛剛完成了 Python 運算符的速成課程。記住,練習使完美,所以不要害怕在自己的代碼中嘗試這些運算符。在你察覺之前,你將能夠像大廚一樣將它們結合起來——創造出複雜且美味的 Python 程式!

編程快樂,願運算符與你同在!

Credits: Image by storyset