告别单一路径:我在 Python 的分支里,看见世界如何展开
前几章的代码,在我的感觉里更像一条直线。
输入,保存,计算,输出,一步接一步地往前走。
可写到这里,这条直线突然开始分岔了。
下雨要不要带伞。
年龄够不够。
成绩属于哪一档。
今年是不是闰年。
这些问题都不只有一个固定答案,它们要先看条件,再决定往哪条路走。
也正是从这里开始,我第一次在 Python 的分支里,看见一个会展开、会分流、会出现不同可能的世界。
1. if 一出现,代码就不再只会往前冲
最先接触到的,是 if。
weather = '下雨'if weather == '下雨':print('带伞出门')
这段代码很简单,但它的意义和前面几章不太一样。
前面很多代码更像是:你让我做什么,我就直接做什么。
但 if 不一样。
它在中间加了一层判断。
先看条件成不成立。
成立,再执行。
不成立,就不执行。
这就是最基础的单分支。
它只有一个入口条件,没有备用路线。
也就是从这里开始,我第一次觉得,程序好像不只是“照着做事”,而是在“看情况做事”。
2. if / else / elif 让答案开始长出层次
当只有“满足”或“不满足”两种结果时,if / else 就很清楚。
age = 16if age >= 18:print('已成年')else:print('未成年')
如果情况不止两种,就会用到 elif。
score = 90if score >= 90:print('A')elif score >= 80:print('B')elif score >= 70:print('C')else:print('D')
这时候我会很明显地感觉到,代码开始越来越像我们平时做决定的过程了。
先判断,再分路。
而且不是只分成黑白两块,它开始有层次了。
如果用最简单的话来记:
这个结构一旦想通,很多分支题都会顺很多。
3. 缩进这件事,让我第一次看见逻辑也有边界
学到这里的时候,还有一个很真实的感受,就是我开始不敢随便对待缩进了。
以前刚入门时,缩进在我眼里更像格式。
后来写 if 我才慢慢发现,不是。
age = 19if age >= 18:print('已成年')print('未来可期')print('判断结束')
它其实在告诉 Python:哪些代码属于这个判断里面,哪些不属于。
也就是说,缩进不是好不好看,而是谁归谁管。
这一点一旦想通,我对代码结构的感觉就完全不一样了。
它不再只是排版,而是逻辑边界。
4. 成绩判断和 BMI 判断,让我第一次看见区间里的世界
让我印象很深的,是成绩判断和 BMI 判断。
因为它们不是简单地判断“是”或“不是”,而是在判断“落在哪个范围里”。
bmi = 22.0if bmi < 18.5:print('偏瘦')elif18.5 <= bmi < 23.9:print('正常')else:print('需要适当运动')
到这里我会明显感觉到,代码开始更细了。
它不只是把世界分成黑白两种,而是开始学着处理更具体的区间和层次。
而区间判断最值得记住的一点是:条件的顺序很重要。
先写范围大的,还是先写范围小的,最后的结果可能完全不一样。
5. 这一章真正补上的,是“分支语句”的知识骨架
写到这里,我后来会把这一章的核心知识点总结成这几条:
- • 多分支:用
if / elif / else 处理多种情况
我觉得这一小段总结很重要。
因为分支语句表面上像是在学语法,实际上是在学“怎么把判断过程写出来”。
6. 输入校验这一步,让我意识到判断之前还有把关
这里还有一个我很喜欢的细节:输入校验。
像年龄判断,会先看输入的是不是数字;成绩判断,也会先判断输入格式对不对。
age = input('请输入你的年龄:')if age.isdigit(): age = int(age)if0 <= age <= 120:print('输入正确')else:print('年龄范围有误')else:print('请输入数字')
这让我第一次意识到,程序不只是要会算、会判断,它还要先判断“你给我的东西能不能用”。
这一点特别像现实生活。
很多问题不是出在结论,而是出在一开始输入的信息就有问题。
所以从这里开始,我会慢慢意识到:程序逻辑不只是最终判断,前面还包括检查输入、过滤错误、确认条件。
7. match 让我看见,同一种分支也可以有不同展开方式
这里还出现了 match。
它和前面的 if / elif / else 很像,都是在根据不同情况给出不同结果。
x = 2match x:case1:print('one')case2:print('two')case _:print('other')
但 match 给我的感觉是,它让多种情况并排摆出来了。
如果判断的是一个很明确、很固定的值,match 看起来会更整齐。
所以这一段还有一个很重要的收获是:同一种逻辑,不一定只有一种写法。
写代码不是永远只有唯一标准答案,而是你要慢慢学会,什么场景下哪种写法更清楚。
8. 闰年判断让我第一次感受到,条件一缠起来就会变难
这里还有一个特别典型的例子:闰年判断。
if (year % 4 == 0and year % 100 != 0) or year % 400 == 0:print('是闰年')else:print('不是闰年')
这种写法一出现,我就会很明显地感觉到:哦,条件一复杂,代码真的会立刻变难。
因为它不再是单一判断,而是多个条件之间还要讲顺序、讲组合关系。
而这一行里最值得记住的知识点是:
这也是为什么我后来越来越觉得,代码不是只会给结果,它也会逼你把逻辑讲清楚。
9. 最打动我的,是程序终于开始自己“选路”
如果说前面几章更多是在学:
怎么输入、怎么输出、怎么保存、怎么算。
那这一段最让我有感觉的一点是:
程序开始有选择了。
不同条件,对应不同结果。
不是永远一条路走到底。
而是看情况、做判断、再分支。
这一刻我会觉得,代码终于不像只会重复命令的机器了。
它开始有一点“如果这样,就那样;如果不是,就换一种方式”的灵活感。
当然,这种灵活是人提前写进去的。
但也正因为这样,我会更强烈地意识到:
写代码,本质上是在把自己的判断过程翻译给程序。
最后
如果让我用现在这套眼光总结这一段,我会说:
分支最迷人的地方,不只是“多了几种写法”,而是它让程序从一条直线,慢慢长成一个会展开的世界。
条件不同,路径不同,结果也不同。
也正是从这里开始,我第一次真正感觉到,代码不再只是执行,它开始拥有结构、层次和方向。
🌷🌷🌷
如果你也正在学到这一段,你第一次明显看见“世界展开”是在什么例子里?
是 if 的第一层分支,成绩判断,还是闰年条件突然变复杂的那一刻?