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 游乐园收费规则规则:
- 身高>120:继续判断 VIP 等级;VIP>3 →免费,否则收费 20
- 身高≤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所以可以免费哦!")
Demo2 小区领取礼品规则规则:
- 年龄在 18~60 岁之间,才具备资格
- 在年龄达标的前提下:居住年限 > 5 年 或者 有小区房产 → 可以领礼物
- 年龄不在 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}")
浙公网安备 33010602011771号