Python編程:運算符詳解
Python提供了豐富的運算符,用於執行各種操作。下面我將詳細介紹各類運算符及其用法。
1. 算術運算符
print("=== 算術運算符 ===")
a = 10
b = 3
print(f"a = {a}, b = {b}")
print(f"加法: a + b = {a + b}") # 13
print(f"減法: a - b = {a - b}") # 7
print(f"乘法: a * b = {a * b}") # 30
print(f"除法: a / b = {a / b}") # 3.333...
print(f"取整除法: a // b = {a // b}") # 3
print(f"取模: a % b = {a % b}") # 1
print(f"冪運算: a ** b = {a ** b}") # 1000
# 特殊算術運算
print(f"負數: -a = {-a}") # -10
print(f"正數: +a = {+a}") # 10
2. 比較運算符
print("\n=== 比較運算符 ===")
x = 5
y = 8
print(f"x = {x}, y = {y}")
print(f"等於: x == y -> {x == y}") # False
print(f"不等於: x != y -> {x != y}") # True
print(f"大於: x > y -> {x > y}") # False
print(f"小於: x < y -> {x < y}") # True
print(f"大於等於: x >= y -> {x >= y}") # False
print(f"小於等於: x <= y -> {x <= y}") # True
# 字符串比較
str1 = "apple"
str2 = "banana"
print(f"\n字符串比較: '{str1}' < '{str2}' -> {str1 < str2}") # True
3. 邏輯運算符
print("\n=== 邏輯運算符 ===")
p = True
q = False
print(f"p = {p}, q = {q}")
print(f"與: p and q -> {p and q}") # False
print(f"或: p or q -> {p or q}") # True
print(f"非: not p -> {not p}") # False
# 實際應用示例
age = 25
has_license = True
can_drive = age >= 18 and has_license
print(f"\n年齡 {age} 歲,有駕照: {has_license}")
print(f"可以開車: {can_drive}")
4. 賦值運算符
print("\n=== 賦值運算符 ===")
# 基本賦值
a = 10
print(f"初始值: a = {a}")
# 複合賦值運算符
a += 5 # a = a + 5
print(f"a += 5 -> a = {a}")
a -= 3 # a = a - 3
print(f"a -= 3 -> a = {a}")
a *= 2 # a = a * 2
print(f"a *= 2 -> a = {a}")
a /= 4 # a = a / 4
print(f"a /= 4 -> a = {a}")
a //= 2 # a = a // 2
print(f"a //= 2 -> a = {a}")
a %= 3 # a = a % 3
print(f"a %= 3 -> a = {a}")
a **= 2 # a = a ** 2
print(f"a **= 2 -> a = {a}")
# 多重賦值
x = y = z = 0
print(f"\n多重賦值: x={x}, y={y}, z={z}")
# 並行賦值
a, b, c = 1, 2, 3
print(f"並行賦值: a={a}, b={b}, c={c}")
# 交換變量值
a, b = b, a
print(f"交換後: a={a}, b={b}")
5. 位運算符
print("\n=== 位運算符 ===")
m = 10 # 二進制: 1010
n = 4 # 二進制: 0100
print(f"m = {m} (二進制: {bin(m)}), n = {n} (二進制: {bin(n)})")
print(f"按位與: m & n = {m & n} (二進制: {bin(m & n)})") # 0
print(f"按位或: m | n = {m | n} (二進制: {bin(m | n)})") # 14
print(f"按位異或: m ^ n = {m ^ n} (二進制: {bin(m ^ n)})") # 14
print(f"按位取反: ~m = {~m} (二進制: {bin(~m)})") # -11
print(f"左移: m << 1 = {m << 1} (二進制: {bin(m << 1)})") # 20
print(f"右移: m >> 1 = {m >> 1} (二進制: {bin(m >> 1)})") # 5
6. 身份運算符
print("\n=== 身份運算符 ===")
list1 = [1, 2, 3]
list2 = [1, 2, 3]
list3 = list1
print(f"list1 = {list1}")
print(f"list2 = {list2}")
print(f"list3 = {list3}")
print(f"list1 is list2 -> {list1 is list2}") # False
print(f"list1 is list3 -> {list1 is list3}") # True
print(f"list1 is not list2 -> {list1 is not list2}") # True
# 小整數緩存(-5到256)
a = 100
b = 100
print(f"\na=100, b=100, a is b -> {a is b}") # True
7. 成員運算符
print("\n=== 成員運算符 ===")
fruits = ["apple", "banana", "orange"]
word = "Hello World"
print(f"fruits = {fruits}")
print(f"word = '{word}'")
print(f"'banana' in fruits -> {'banana' in fruits}") # True
print(f"'grape' not in fruits -> {'grape' not in fruits}") # True
print(f"'Hello' in word -> {'Hello' in word}") # True
print(f"'Python' not in word -> {'Python' not in word}") # True
8. 運算符優先級示例
print("\n=== 運算符優先級 ===")
# 優先級從高到低
result1 = 2 + 3 * 4 # 乘法優先:2 + 12 = 14
result2 = (2 + 3) * 4 # 括號優先:5 * 4 = 20
result3 = 10 - 4 + 2 # 從左到右:6 + 2 = 8
result4 = 2 ** 3 * 4 # 冪運算優先:8 * 4 = 32
print(f"2 + 3 * 4 = {result1}")
print(f"(2 + 3) * 4 = {result2}")
print(f"10 - 4 + 2 = {result3}")
print(f"2 ** 3 * 4 = {result4}")
# 複雜表達式
a, b, c = 2, 3, 4
complex_result = a + b * c ** 2 // (a + 1) - b
print(f"\n複雜表達式: {a} + {b} * {c} ** 2 // ({a} + 1) - {b} = {complex_result}")
9. 綜合應用示例
print("\n=== 綜合應用示例 ===")
# 計算器功能演示
def simple_calculator():
print("簡易計算器")
try:
num1 = float(input("請輸入第一個數字: "))
operator = input("請輸入運算符 (+, -, *, /, //, %, **): ")
num2 = float(input("請輸入第二個數字: "))
if operator == "+":
result = num1 + num2
elif operator == "-":
result = num1 - num2
elif operator == "*":
result = num1 * num2
elif operator == "/":
if num2 == 0:
print("錯誤:除數不能為零!")
return
result = num1 / num2
elif operator == "//":
if num2 == 0:
print("錯誤:除數不能為零!")
return
result = num1 // num2
elif operator == "%":
if num2 == 0:
print("錯誤:除數不能為零!")
return
result = num1 % num2
elif operator == "**":
result = num1 ** num2
else:
print("錯誤:不支持的運算符!")
return
print(f"結果: {num1} {operator} {num2} = {result}")
except ValueError:
print("錯誤:請輸入有效的數字!")
# 運行計算器
simple_calculator()
10. 運算符優先級總結表
print("\n=== 運算符優先級總結 ===")
print("""
優先級從高到低:
1. ** 冪運算
2. +x, -x, ~x 正負號、按位取反
3. *, /, //, % 乘除類運算
4. +, - 加減類運算
5. <<, >> 位移運算
6. & 按位與
7. ^ 按位異或
8. | 按位或
9. ==, !=, >, >=, <, <= 比較運算
10. is, is not 身份運算
11. in, not in 成員運算
12. not 邏輯非
13. and 邏輯與
14. or 邏輯或
15. =, +=, -=, *=, etc. 賦值運算
提示:使用括號可以明確優先級,提高代碼可讀性!
""")
運行示例輸出
=== 算術運算符 ===
a = 10, b = 3
加法: a + b = 13
減法: a - b = 7
乘法: a * b = 30
除法: a / b = 3.3333333333333335
取整除法: a // b = 3
取模: a % b = 1
冪運算: a ** b = 1000
...
=== 綜合應用示例 ===
簡易計算器
請輸入第一個數字: 10
請輸入運算符 (+, -, *, /, //, %, **): *
請輸入第二個數字: 5
結果: 10.0 * 5.0 = 50.0
這個詳細的運算符教程涵蓋了Python中所有主要的運算符類型,包括它們的語法、用法和實際應用示例。