动态

详情 返回 返回

Python編程:運算符詳解 - 动态 详情

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中所有主要的運算符類型,包括它們的語法、用法和實際應用示例。

user avatar u_17037082 头像 u_13137233 头像 u_17400586 头像 u_16281588 头像 haoqidedalianmao 头像 codexiaosheng 头像 zengjingaiguodekaomianbao 头像 huaiyue_63f0b9e085bf0 头像 kuanrongdeshanyang 头像 wanlanqiudeyuechi 头像 lintp 头像 liutos 头像
点赞 28 用户, 点赞了这篇动态!
点赞

Add a new 评论

Some HTML is okay.