欢迎回到《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实现多分支决策,嵌套条件处理复杂逻辑。注意条件顺序和代码可读性。
明天学习循环语句,让程序重复执行任务。
学习建议:多练习不同场景,画流程图理清逻辑。