7.条件语句(if-elif-else)

7.条件语句(if-elif-else)

欢迎回到《10天学会Python》系列!今天深入学习if-elif-else结构,让程序能处理复杂的多分支决策。

核心概念

if-elif-else结构

程序从上到下检查条件,执行第一个成立的条件对应的代码块。这是处理多选一问题的标准方式:

python

if score >= 90:
    print("优秀")
elif score >= 80:
    print("良好")  
elif score >= 70:
    print("中等")
elif score >= 60:
    print("及格")
else:
    print("不及格")

执行流程:从上到下检查条件,执行第一个成立的条件,跳过后续所有分支。

要点

  • 条件顺序重要,避免范围重叠
  • 只会执行第一个成立的条件
  • elif可有多个,else可选

嵌套条件

在条件内部再进行判断,实现更精细的逻辑控制。嵌套条件就像决策树,每层判断细化选择:

python

if 有账号:
    if 密码正确:
        print("登录成功")
    else:
        print("密码错误")
else:
    print("账号不存在")

适用场景:登录验证、权限检查、表单验证等需要多层判断的场景。

建议:嵌套不超过3层,过深可考虑使用elif或提取函数。

代码示例

1. 成绩等级系统

将百分制分数转换为字母等级,展示多分支选择:

python

score = 85
if score >= 90:
    grade = "A"
elif score >= 80:
    grade = "B"
elif score >= 70:
    grade = "C"
elif score >= 60:
    grade = "D"
else:
    grade = "F"
print(f"成绩{score}分:等级{grade}")

注意:条件按顺序检查,85分匹配B等级。

2. 年龄分段与建议

根据年龄提供人生阶段划分,elif条件自然形成连续区间:

python

age = 22
if age < 13:
    stage = "儿童期"
elif age < 18:
    stage = "青少年期"
elif age < 25:
    stage = "青年期"
elif age < 60:
    stage = "成年期"
else:
    stage = "老年期"
print(f"{age}岁:{stage}")

技巧:使用 < 定义区间,避免重叠。

3. 登录验证系统

典型的两层嵌套验证:先验证用户名,用户名正确再验证密码:

python

username = "admin"
password = "123456"
if username == "admin":
    if password == "123456":
        print("管理员登录成功")
    else:
        print("密码错误")
else:
    print("用户名错误")

流程:先验证用户名,正确再验证密码。

4. 简易计算器

根据运算符选择不同计算,除法运算增加除零检查:

python

num1, num2 = 10, 5
op = "/"
if op == "+":
    result = num1 + num2
elif op == "-":
    result = num1 - num2
elif op == "*":
    result = num1 * num2
elif op == "/":
    if num2 != 0:  # 嵌套条件:检查除数
        result = num1 / num2
    else:
        print("除数不能为0")
print(f"{num1}{op}{num2}={result}")

注意:嵌套条件防止除零错误。

5. 交通信号灯模拟

状态机应用:根据信号灯颜色决定驾驶行为,else处理意外输入:

python

color = "yellow"
if color == "red":
    print("🚦 红灯:停车等待")
elif color == "yellow":
    print("🚦 黄灯:准备通行")
elif color == "green":
    print("🚦 绿灯:安全通过")
else:
    print("无效颜色")

注意:else处理意外输入。

实践应用:智能问答系统

综合运用多分支条件,创建简单的关键词匹配问答系统。用户输入问题,程序检查是否包含特定关键词并给出相应回答:

python

question = input("请输入问题:")
if "价格" in question:
    print("💰 基础版299元/月")
elif "售后" in question:
    print("🔧 工作时间9-18点")
elif "退货" in question:
    print("📦 7天无理由退货")
elif "配送" in question:
    print("🚚 全国包邮")
else:
    print("请尝试关键词:价格、售后、退货、配送")

原理:使用 in 检查关键词,elif处理不同类型,else提供默认回复。

扩展:可添加更多关键词、集成数据库等。

练习题

练习1:基础判断

输入整数,判断正负零,输出对应结果。

练习2:成绩转换

输入百分制成绩,输出等级制(A:90-100, B:80-89, C:70-79, D:60-69, F:0-59)。

练习3:电影票计算

输入年龄和是否有学生证,计算票价:

  • 儿童<12:30元
  • 学生12-22且有证:40元
  • 成人≥22或无证:60元
  • 老人≥65:35元

练习4:BMI健康建议

输入身高体重,计算BMI,给出建议:

  • <18.5:偏瘦,增加营养
  • 18.5-24:正常,保持
  • 24-28:超重,控制饮食
  • ≥28:肥胖,咨询医生

总结

if-elif-else实现多分支决策,嵌套条件处理复杂逻辑。注意条件顺序和代码可读性。

明天学习循环语句,让程序重复执行任务。


学习建议:多练习不同场景,画流程图理清逻辑。

6.比较运算符与条件判断 2026-01-21
8.循环语句(for、while) 2026-01-21

评论区