Administrator
Administrator
发布于 2026-10-31 / 0 阅读
0
0

Python 从入门到初级(04):条件判断:把运费和业务规则写成 if

本篇是《Python 从入门到初级》第 4 / 20 篇。示例使用 Python 3.12 兼容语法,完整目录结构与数据见配套源码包。

程序的价值不仅是做计算,还在于按规则做选择。比如商品满 100 元免运费,否则收 10 元;非指定地区则转人工确认。这些规则可以用条件分支表达。

输入金额和地区,判断规则,再输出应付结果

1. if、elif、else 是一组分支

if 判断第一种情况,elif 继续判断其他情况,else 处理前面都不成立的情况。一组 if/elif/else 中只会进入其中一个分支。

score = 85
if score >= 90:
    print("优秀")
elif score >= 60:
    print("通过")
else:
    print("继续练习")

这里先检查 90,再检查 60,85 会输出“通过”。如果先检查 60,大于 90 的分数也会被前面的分支接住,所以顺序本身就是规则的一部分。

条件语句规则见 官方控制流程说明。

2. 完整示例:订单运费计算

保存为 lesson04.py:

amount_cents = 9900
region = "mainland"

if amount_cents < 0:
    print("订单金额不能为负数")
elif region != "mainland":
    print("该地区需要人工确认配送费用")
else:
    if amount_cents >= 10000:
        shipping_cents = 0
    else:
        shipping_cents = 1000
    total_cents = amount_cents + shipping_cents
    print(f"商品:{amount_cents / 100:.2f} 元")
    print(f"运费:{shipping_cents / 100:.2f} 元")
    print(f"应付:{total_cents / 100:.2f} 元")

示例把金额保存为整数分。9900 分未达到 10000 分门槛,所以运费为 1000 分,应付 10900 分,即 109.00 元。

负金额先被拒绝,未指定地区先转人工,其余情况才计算运费。真实业务的地区、价格和配送规则需要另外定义,本例只演示如何把规则写成程序。

3. 缩进决定哪些语句属于这个条件

Python 使用缩进表达代码块,通常每层四个空格。冒号表示后面开始一个代码块。同一层代码保持一致,不要把 Tab 和空格混用。

示例最后三行打印在内部 if/else 结束之后,但仍处于外层 else 里,因此只有可计算的订单才会输出总价。

如果把打印错误地退到最外层,前面被拒绝的订单可能没有计算过 shipping_cents,后面却尝试使用它,进而引发未定义变量错误。

4. 比较、逻辑组合和真假值

== 判断是否相等,!= 判断不相等,>=、<= 判断大小。注意 = 是赋值,== 才是比较。

需要同时满足两条条件,可以使用 and;满足任意一条使用 or;取反使用 not。

stock = 5
quantity = 2
allowed = quantity > 0 and quantity <= stock
print(allowed)

预期为 True。不要写 status == "paid" or "pending" 来表达两种状态;后面的非空字符串本身就是真值。可以写 status in {"paid", "pending"},集合会在下一篇解释。

5. 边界值比随便试一个数字更有用

验证“满 100 元免运费”,至少试 9999、10000、10001 分。预期运费分别是 1000、0、0 分,这能区分 > 和 >= 是否写对。

还要试负数和非指定地区,确认程序按预期拒绝或转人工。程序没有报错,并不意味着业务规则正确。

6. 练习与参考结果

把免运费门槛改为 200 元,普通运费改为 8 元,再把金额设成 19900 分。预期应付 20700 分。

然后写下你的规则表:哪些情况直接拒绝、哪些继续计算、门槛边界是否包含。先写清楚规则再写 if,往往比不断补分支更容易检查。


上一篇:字符串处理:清洗名称、拆分标签与展示邮箱 · 系列目录 · 下一篇:列表、元组和集合:管理清单与去重


评论