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中所有主要的运算符类型,包括它们的语法、用法和实际应用示例。