一、引言
if 语句可以嵌套使用,但要注意逻辑的清晰!有时候嵌套是需要的,但不要太深!
💡 if 里面还有 if,这就是嵌套!
二、嵌套 if 基本用法
# 例子:判断能不能开车
age = 20
has_license = True
if age >= 18:
print("你已经成年了")
if has_license:
print("你有驾照,可以开车")
else:
print("你还没有驾照,不能开车")
else:
print("你还未成年,不能开车")
例子 1:登录系统(带用户类型)
username = input("请输入用户名:")
password = input("请输入密码:")
if username == "admin":
if password == "admin123":
print("管理员登录成功!")
else:
print("管理员密码错误!")
elif username == "user":
if password == "user123":
print("普通用户登录成功!")
else:
print("普通用户密码错误!")
else:
print("用户名不存在!")
例子 2:学校录取系统
score = int(input("请输入分数:"))
has_sports = input("是否有特长(yes/no):") == "yes"
if score >= 600:
print("可以上重点大学!")
if has_sports:
print("还有特长加分!")
elif score >= 400:
print("可以上普通大学!")
else:
print("需要努力加油!")
三、逻辑优化:避免过深的嵌套
优化前(嵌套太深)
# ❌ 嵌套太深
if a > 0:
if b > 0:
if c > 0:
print("都大于0")
优化后(用 and)
# ✅ 更清晰
if a > 0 and b > 0 and c > 0:
print("都大于0")
优化前(复杂)
age = 20
if age >= 18:
has_id = True
if has_id:
has_money = True
if has_money:
print("可以买票")
优化后
age = 20
has_id = True
has_money = True
if age >= 18 and has_id and has_money:
print("可以买票")
四、可读性优先:提取条件变量
# ✅ 清晰的写法
score = 75
is_pass = score >= 60
is_excellent = score >= 90
if is_pass:
print("及格")
if is_excellent:
print("还很优秀!")
另一个例子
age = 25
is_adult = age >= 18
is_young = age < 30
is_middle_age = age >= 30 and age < 60
if is_adult:
if is_young:
print("年轻人")
elif is_middle_age:
print("中年人")
else:
print("老年人")
五、实际例子:猜数字游戏
import random
target = random.randint(1, 100)
print("我想了一个 1-100 之间的数字,你来猜!")
guess = int(input("请输入你猜的数字:"))
if guess == target:
print("恭喜你,猜对了!")
else:
if guess > target:
print("猜大了!")
else:
print("猜小了!")
六、课后练习题
# 练习 1:输入三个数,找出最大的那个
# 练习 2:输入年份、月份,判断该月有多少天(注意闰年2月)
# 练习 3:写一个简单的 ATM 取款逻辑
总结
通过本章学习,你应该已经掌握了「嵌套 if 与条件判断逻辑优化」的相关知识。
嵌套可以用,但不要太深,保持代码清晰!下一章学习综合实战!