哈罗,各位大朋友小朋友们!之前我们带孩子们一起收服了 if(如果)、else(否则)和 elif(或者)这三位大管家。现在的电脑在孩子手里,已经能像模像样地做各种单项选择题了。
但是,生活里的考验往往是一环扣一环的。比如:如果今天放假,并且如果外面不下雨,我们才出去踢球。这就意味着,必须先满足“放假”这个大前提,才能接着去判断“下不下雨”。
这种“大要求里面还套着小要求”的连环计,在编程里该怎么写呢?今天我们就来解锁分支结构里的终极招式——条件语句嵌套!
🪆 什么是嵌套?其实就是代码版的“俄罗斯套娃”
“嵌套”这个词听起来挺深奥,其实大白话解释,就是把一个东西塞进另一个东西里面。
生活里这种现象随处可见,孩子们一眼就能明白:
在 Python 的世界里,条件语句嵌套,就是在一个 if 语句块的内部,又塞进去了一个新的 if 语句。只有当外层的大 if 顺利闯关成功,电脑才会激活内层的小 if 机关。
根据不同的需要,大 if 里面不仅可以套单独的 if,还可以套 if...else 或者 if...elif...else。反正只要你愿意,可以像套娃一样一层一层往下套!
📐 逼死强迫症的排版规矩:缩进再缩进!
还记得我们之前说过的 “4个空格缩进” 铁律吗?那可是 Python 王国的通行证。
一旦玩起了“套娃嵌套”,这个缩进规矩就会变得更有趣(也更容易踩坑):
外层的大 if 顶格写,它下面的小弟要缩进 4个空格。
作为小弟之一的内层小 if,也是顶着这 4个空格的线写的。
那么,归内层小 if 管的代码,就必须在小 if 的基础上再缩进 4个空格(也就是整整 8个空格!)。
代码看起来就像楼梯一样,一层一层往右斜。排版一旦乱了,电脑就会彻底迷路,不知道谁是谁的小弟了。
💻 实战演练:写一个连环数字侦探程序
光说不练假把式,我们用代码来实现一个数学小侦探的功能:
在 PyCharm 里,带孩子敲下这段精妙的套娃代码:
a = float(input('请输入数字a:'))
b = float(input('请输入数字b:'))
# 外层大管家:大前提是 a 必须大于 b
if a > b:
print('a-b =', a - b) # 外层if的小弟,缩进4个格
# 内层小管家:在 a > b 的安全区里,再次发起判断!
if a % b == 0: # 也是缩进4个格,和上面的print对齐
print('a/b =', a / b) # 核心小弟!缩进8个格!只有外层内层都通关,才会执行它!游戏测试时间:
情况一: 输入 $a = 10, b = 2$。因为 10 > 2,大前提成立!电脑打印出 a-b = 8;接着触发内层判断,10 能被 2 整除,内层也成立!电脑又打印出 a/b = 5。两个愿望一次满足!
情况二: 输入 $a = 10, b = 3$。10 > 3 大前提成立,打印 a-b = 7。但 10 不能被 3 整除,内层机关没触发。程序到此结束。
情况三: 输入 $a = 2, b = 5$。因为 2 不大于 5,大前提直接失败!电脑冷酷地撇了一眼,后面的连环计代码看都不看,直接收工。
📝 条件语句终极毕业卡
学到这里,恭喜孩子们!Python 分支结构(也就是条件判断)的全部核心大招,你们已经彻底通关了: