嵌套 if 与条件判断逻辑优化

文章顶部广告位
728×90 或 336×280

一、引言

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 与条件判断逻辑优化」的相关知识。

嵌套可以用,但不要太深,保持代码清晰!下一章学习综合实战!

文章中间广告位
600×300 或 300×250
← 上一篇 下一篇 →
文章底部广告位
728×90 或 300×250