Skip to content

运算符

🎯 什么是运算符?

什么是运算符? 运算符就是用来做运算的符号。就像数学里的 +-×÷ 一样,Python 也有各种运算符来做不同的运算。

想象一下:

  • + 就像加法器,把两个数加起来
  • > 就像天平,比较哪个更重
  • and 就像"并且",两个条件都要满足

🧮 算术运算符

什么是算术运算符? 算术运算符就是用来做数学计算的符号,和小学数学里学的差不多。

用于进行数学计算:

python
a = 10
b = 3

print(a + b)   # 加法:13(就像 10 + 3)
print(a - b)   # 减法:7(就像 10 - 3)
print(a * b)   # 乘法:30(就像 10 × 3)
print(a / b)   # 除法:3.333...(就像 10 ÷ 3)
print(a // b)  # 整除:3(只取整数部分,不要小数)
print(a % b)   # 取余:1(10 除以 3 余 1,就像分苹果剩下的)
print(a ** b)  # 幂运算:1000(10 的 3 次方,就是 10×10×10)

什么是整除和取余?

  • 整除(//):只取整数部分,就像分苹果,10 个苹果分给 3 个人,每人 3 个(不要小数)
  • 取余(%):只要余数,就像分完苹果剩下的,10 个苹果分给 3 个人,剩下 1 个

运算优先级

什么是运算优先级? 就像数学里"先乘除后加减"一样,Python 也有优先级。优先级高的先算。

python
# 和数学一样:先乘除,后加减,有括号先算括号
result = 2 + 3 * 4      # 14(先算 3*4=12,再算 2+12=14)
result = (2 + 3) * 4    # 20(先算括号 2+3=5,再算 5*4=20)
result = 2 ** 3 ** 2    # 512(从右到左:3**2=9,2**9=512)

小提示

不确定优先级时,就用括号!括号最优先,而且代码更容易读。

📊 比较运算符

什么是比较运算符? 比较运算符用来比较两个值的大小或是否相等,结果只有两种:True(真)或 False(假)。

就像天平一样:

  • > 表示左边比右边重
  • < 表示左边比右边轻
  • == 表示两边一样重

用于比较两个值,返回 True 或 False:

python
a = 10
b = 5

print(a > b)   # 大于:True(10 大于 5 是真的)
print(a < b)   # 小于:False(10 小于 5 是假的)
print(a >= b)  # 大于等于:True(10 大于或等于 5)
print(a <= b)  # 小于等于:False(10 小于或等于 5 是假的)
print(a == b)  # 等于:False(10 等于 5 是假的)
print(a != b)  # 不等于:True(10 不等于 5 是真的)

注意

== 是两个等号,用来比较是否相等。= 是一个等号,用来赋值(把右边的值给左边)。千万别搞混了!

字符串比较

字符串也能比较? 可以!字符串按照字典顺序比较,就像查字典一样,按字母顺序。

python
# 字符串按照字典顺序比较
print("apple" < "banana")  # True(apple 在字典里排在 banana 前面)
print("abc" == "abc")      # True(完全一样)
print("A" < "a")           # True(大写字母排在小写字母前面)

🔗 逻辑运算符

什么是逻辑运算符? 逻辑运算符用来组合多个条件,就像说话时的"并且"、"或者"、"不是"。

and - 与(两个都要满足)

什么是 and?and 表示"并且",两个条件都要满足才为真。就像"有钱并且有时间"才能去旅游。

python
age = 25
income = 10000

# 同时满足才为 True
print(age > 18 and income > 5000)  # True(年龄大于18 并且 收入大于5000)
print(age > 18 and income > 20000) # False(年龄满足,但收入不满足)

生活例子

  • 能买酒:年龄 >= 18 并且 有身份证
  • 能看电影:有钱 并且 有时间

or - 或(满足一个即可)

什么是 or?or 表示"或者",满足其中一个条件就为真。就像"有钱或者有会员卡"就能看电影。

python
is_student = True
is_teacher = False

# 满足其一即为 True
print(is_student or is_teacher)  # True(是学生或者老师都可以)

生活例子

  • 能进图书馆:是学生 或者 是老师
  • 能打折:有会员卡 或者 是学生

not - 非(取反)

什么是 not?not 表示"不是",把 True 变成 False,把 False 变成 True。就像开关的反转。

python
is_raining = False
print(not is_raining)  # True(不下雨,所以 not is_raining 是 True)

生活例子

  • 不下雨:not is_raining
  • 不是学生:not is_student

实际应用

python
age = 20
has_id = True
has_money = True

# 能否买酒:年满 18 且有身份证
can_buy_alcohol = age >= 18 and has_id
print(f"能买酒:{can_buy_alcohol}")  # True

# 能否看电影:有钱或有会员
is_vip = False
can_watch = has_money or is_vip
print(f"能看电影:{can_watch}")  # True

➕ 赋值运算符

什么是赋值运算符? 赋值运算符是 = 的简化写法。比如 x = x + 5 可以写成 x += 5,更简洁。

python
x = 10

x += 5   # 等同于 x = x + 5,结果:15
x -= 3   # 等同于 x = x - 3,结果:12
x *= 2   # 等同于 x = x * 2,结果:24
x /= 4   # 等同于 x = x / 4,结果:6.0
x //= 2  # 等同于 x = x // 2,结果:3.0
x %= 2   # 等同于 x = x % 2,结果:1.0
x **= 3  # 等同于 x = x ** 3,结果:1.0

为什么要用赋值运算符? 更简洁!x += 1x = x + 1 短,而且意思更清楚:给 x 加 1。

🔍 成员运算符

什么是成员运算符? 成员运算符用来检查一个元素是否在序列(列表、字符串等)里面。就像检查"苹果"是否在购物清单里。

检查元素是否在序列中:

python
# in - 在里面
fruits = ["苹果", "香蕉", "橙子"]
print("苹果" in fruits)     # True(苹果在列表里)
print("葡萄" in fruits)     # False(葡萄不在列表里)

# not in - 不在里面
print("葡萄" not in fruits) # True(葡萄不在列表里)

# 字符串也可以用
text = "Hello, World!"
print("Hello" in text)      # True("Hello" 在字符串里)
print("Python" in text)     # False("Python" 不在字符串里)

什么时候用?

  • 检查用户名是否已存在
  • 检查某个单词是否在文章里
  • 检查某个商品是否在购物车里

🎭 身份运算符

什么是身份运算符? 身份运算符用来检查两个变量是否指向同一个对象。就像检查两个盒子是不是同一个盒子。

检查两个对象是否是同一个对象:

python
a = [1, 2, 3]
b = [1, 2, 3]
c = a

# == 比较值是否相等
print(a == b)  # True(值相同,都是 [1, 2, 3])

# is 比较是否是同一个对象
print(a is b)  # False(不同对象,就像两个不同的盒子,虽然里面东西一样)
print(a is c)  # True(c 指向 a,是同一个盒子)

什么是对象? 在 Python 里,每个数据都是一个"对象",就像每个盒子都有自己的编号。即使两个盒子里装的东西一样,它们也是不同的盒子。

何时用 is

一般用 == 比较值就够了,is 主要用于比较 None(空值):

python
value = None
if value is None:
    print("值为空")

📋 运算符优先级

什么是优先级? 优先级决定了哪个运算符先算。就像数学里"先乘除后加减"一样。

从高到低:

优先级运算符描述
1**幂运算
2+x -x正负号
3* / // %乘除
4+ -加减
5< <= > >= != ==比较
6not逻辑非
7and逻辑与
8or逻辑或

建议

遇到复杂表达式时,多用括号让代码更清晰:

python
# 不清晰
result = a + b * c > d and e

# 清晰
result = ((a + (b * c)) > d) and e

✏️ 动手练习

练习 1:判断奇偶数

python
num = int(input("请输入一个整数:"))
is_even = num % 2 == 0  # 除以 2 余数为 0 就是偶数
print(f"{num} 是偶数:{is_even}")

练习 2:判断闰年

python
year = int(input("请输入年份:"))
# 闰年条件:能被 4 整除但不能被 100 整除,或者能被 400 整除
is_leap = (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0)
print(f"{year} 是闰年:{is_leap}")

练习 3:成绩等级判断

python
score = int(input("请输入成绩:"))
is_excellent = score >= 90
is_good = score >= 80 and score < 90
is_pass = score >= 60 and score < 80

print(f"优秀:{is_excellent}")
print(f"良好:{is_good}")
print(f"及格:{is_pass}")

🎯 本节要点

  • 算术运算符+ - * / // % **(做数学计算)
  • 比较运算符> < >= <= == !=(比较大小)
  • 逻辑运算符and or not(组合条件)
  • 赋值运算符= += -= *= 等(简化赋值)
  • 成员运算符in not in(检查是否在里面)
  • 遇到复杂表达式,善用括号

常见问题

Q: ==is 有什么区别?

  • == 比较值是否相等(盒子里装的东西一样吗?)
  • is 比较是否是同一个对象(是同一个盒子吗?)

一般用 == 就够了,is 主要用于比较 None

Q: andor 的优先级是什么?

and 的优先级比 or 高。不确定时用括号:

python
# 不清晰
result = a or b and c

# 清晰
result = a or (b and c)

Q: 为什么 10 / 3 得到小数,10 // 3 得到整数?

  • / 是普通除法,会得到小数
  • // 是整除,只要整数部分

就像分苹果,10 / 3 是每人 3.33... 个(理论上),10 // 3 是每人 3 个(实际分)。

下一步

有了运算符,我们可以进行条件判断了!

用 ❤️ 制作的 Python 入门课程