基本结构

score = 85

if score >= 90:
    print("优秀")
elif score >= 60:
    print("及格")
else:
    print("不及格")

elif 可以有任意多个,else 只能有 0 或 1 个。

比较运算符

x == y       # 等于(两个等号!)
x != y       # 不等于
x < y        # 小于
x <= y       # 小于等于
x > y        # 大于
x >= y       # 大于等于

⚠️ 区分 ==== 是赋值,== 是比较。

链式比较(Python 特色)

0 < x < 100      # 等价于 0 < x and x < 100
60 <= score < 80 # 区间判断更直观

逻辑运算符

and    # 且:两个都真才真
or     # 或:任一真就真
not    # 非:取反

if age >= 18 and has_id:
    print("可以买票")
if not is_holiday:
    print("正常营业")

Python 的"假值"

下面这些在 if 里都被当成 False:

False, None, 0, 0.0, "", [], {}, set()

其他都是 True,所以可以简写:

name = ""
if name:
    print("有名字")
else:
    print("名字为空")        # 走这里

nums = []
if not nums:
    print("空列表")          # 走这里

三元运算符(条件表达式)

status = "成年" if age >= 18 else "未成年"
x = a if a > b else b      # 取较大值

写在赋值或返回时很简洁,别嵌套用——可读性会崩。

is vs ==

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

a == b      # True   值相等
a is b      # False  不是同一个对象(不同内存地址)
a is None   # 判断是否为 None 用 is,不用 ==

下一篇讲循环 for