• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
麦兜家园
优秀是一种习惯
博客园    首页    新随笔    联系   管理    订阅  订阅

python中if分支if嵌套的用法

一、核心知识点:if 判断语句作用

if 用来根据条件执行不同代码,满足条件就执行 if 里面的代码,不满足就走 else/elif。
语法规则:
1、条件后面必须带冒号 :
2、冒号下一行代码必须缩进(4 个空格 / Tab),缩进代表属于这个 if 代码块
3、缩进不一致会直接报错

1. 基础 if … else 二选一判断

适用场景:只有两种情况,满足 / 不满足
# 年龄判断:成年/未成年
age = int(input("你的年龄是:"))
if age >= 18:
    print("恭喜你,已经成年了!")
else:
    print("你还未成年!")
逻辑:
  • 如果 age >=18 → 执行 if 内代码
  • 否则,执行 else 代码

2. if … elif … else 多分支判断

适用场景:多种互斥条件,从上往下依次判断
注意:代码从上到下执行,只要某一个条件成立,后面的 elif 不会再执行!
Demo1 身高年龄多条件判断
# if elif else 多分支
height = int(input("请输入你的身高:"))
age = 18
if height < 120:
    print("身高低于120,不达标")
elif age > 18:
    print("年龄成年了")
else:
    print("身高和年龄其中一项已满足,所以不可以免费")
Demo2 三次猜数字机会(多分支版本)
# if elif else 多个条件
num = 4
if int(input("请输入一个数字:")) == num:
    print("恭喜你第一次就输入正确!")
elif int(input("请再输入一次:")) == num:
    print("输入正确")
elif int(input("错了,再输入一次")) == num:
    print("终于在最后一次机会输入正确")
else:
    print("输入错误")

二、重点:if 嵌套(if 里面再写 if)

使用场景:第一层条件满足后,才需要继续判断第二层条件核心:内层 if 需要再多一层缩进
Demo1 游乐园收费规则规则:
  1. 身高>120:继续判断 VIP 等级;VIP>3 →免费,否则收费 20
  2. 身高≤120:直接免费
# if 的嵌套使用
# 身高高于120需要收费,身高>120,vip等级>3免费,否则收费;身高低于120直接免费
if int(input("请输入您的身高:")) > 120:
    print("身高高于120了,但是要看下你的vip等级是否满足")
    if int(input("请输入您的vip等级:")) > 3:
        print("您的vip等级高于3了,所以可以免费")
    else:
        print("不满足vip等级,请支付费用20元")
else:
    print("身高低于120所以可以免费哦!")
3了,所以可以免费") else: print("不满足vip等级,请支付费用20元") else: print("身高低于120所以可以免费哦!")
Demo2 小区领取礼品规则规则:
  1. 年龄在 18~60 岁之间,才具备资格
  2. 在年龄达标的前提下:居住年限 > 5 年 或者 有小区房产 → 可以领礼物
  3. 年龄不在 18-60:直接不能领取
# 领取礼物:18<=年龄<=60,并且(居住>5年 或者 拥有房产)可以领礼物
if 18 <= int(input("请输入你放入年龄:")) <= 60:
    if int(input("请输入你连续居住年限:")) > 5:
        print("你的居住年限够了,可以领取礼品了!")
    elif input("请输入你是否拥有房产:") == "是":
        print("你有房产也可以领取礼物")
    else:
        print("你的居住年限不够!")
else:
    print("你的年龄都不达标,所以不能领取!")
利用and和or简单的写法:
# 使用 and / or ,无嵌套if版本:领取礼品
age = int(input("请输入你的年龄:"))
live_year = int(input("请输入你连续居住年限:"))
has_house = input("请输入你是否拥有房产:")

# 条件:年龄18~60 并且 (居住>5年 或者 有房产)
if 18 <= age <= 60 and (live_year > 5 or has_house == "是"):
    print("可以领取礼物!")
else:
    print("不满足条件,不能领取!")

三、综合实战 Demo:3 次机会猜随机数(if 嵌套版)

用到知识点:random模块生成随机数 + if 嵌套,模拟游戏逻辑
# 定义一个随机数,一共有3次机会猜数字
import random
num = random.randint(1,10)  # 生成1~10之间的随机整数
inputNum = int(input("请输入数字:"))

if inputNum == num:
    print("太厉害了,第一次就猜中了")
else:
    if inputNum > num:
        print("数字大了")
    else:
        print("数字小了")

    inputNum = int(input("请再次输入数字:"))
    if inputNum == num:
        print("厉害了,第二次输入准确了")
    else:
        if inputNum < num:
            print("第二次输入的数字小了")
        else:
            print("第二次输入放入数字大了")

        inputNum = int(input("请第三次输入数字:"))
        if inputNum == num:
            print("太牛了,第三次输入准确了")
        else:
            print("第三次输入的不对,三次机会用完了!")
利用循环简化代码,不用一层层嵌套 if,3 次机会统一处理。扩展for中的练习
# 猜数字游戏|3次机会 简洁版
import random
num = random.randint(1, 10)  # 1~10随机整数

# 循环3次
for i in range(3):
    guess = int(input("请输入你猜的数字:"))
    if guess == num:
        print(f"太棒了!第{i+1}次就猜中了!")
        break  # 猜对,直接跳出循环,不再继续猜
    elif guess > num:
        print("猜大了!")
    else:
        print("猜小了!")
else:
    # for的else:循环正常跑完,没有触发break(3次全部猜错才执行)
    print(f"3次机会用完啦,正确数字是:{num}")
posted on 2026-09-30 14:23  麦兜家园  阅读(8)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3