当前位置:首页>python>《Python 从入门到精通》030 | 流程控制综合练习:把判断和循环真正用起来

《Python 从入门到精通》030 | 流程控制综合练习:把判断和循环真正用起来

  • 2026-10-11 08:30:25
《Python 从入门到精通》030 | 流程控制综合练习:把判断和循环真正用起来

这一篇算是第三阶段的阶段性收尾。前面你已经学了判断、循环、嵌套判断、循环嵌套、流程思维,现在该做的,不是再单独看某一个语法点,而是把它们真正连起来用。

写到这里,很多人会进入一个特别关键的阶段。

前面的知识点,你基本都见过了:

ifelifelsewhileforrange()循环嵌套breakcontinue

单独看每一个,好像都不算特别难。 可真到了自己写程序时,很多人还是会卡住。

原因其实很简单。

你不是不会某个语法。 你只是还没有把这些语法真正“连起来”用过。

就像你学会了很多单词, 但还没真正说过几段完整的话。 你学会了很多零件, 但还没真正把它们组装成一个能跑的小程序。

所以这一篇,我们就不再单独讲新的语法了。 我们专门做一件事:

把前面这一阶段的流程控制知识,真正用起来。

你会看到,判断和循环一旦组合起来, 程序就开始变得更像样了。

一、这一阶段你到底学会了什么

先别急着做题, 先回头看一眼你手里已经有什么工具。

你已经会顺序执行代码。 也就是程序一步一步往下走。

你已经会条件判断。 也就是根据真假结果,让程序选择不同路线。

你已经会循环。 也就是让程序重复执行某段逻辑。

你已经会嵌套。 也就是在判断里面继续判断,在循环里面继续循环。

你也开始接触流程思维。 知道拿到题目以后,不是先急着写代码, 而是先拆步骤、先想逻辑。

说白了,到这一篇为止,你已经不再只是学“语法点”了。 你已经有能力开始写一些真正的小程序了。

二、做综合练习时,先记住一个最重要的顺序

以后你碰到稍微复杂一点的题目, 都尽量按这个顺序来:

先看题目要干什么 再拆步骤 再判断里面有没有分支 再判断里面有没有重复 最后再选语法去翻译

不要反过来。

不要一上来就想:

这里是不是要用 while 那里是不是要用 if 这题是不是得上嵌套

这样特别容易乱。

你现在最稳的路线仍然是:

题目 步骤 结构 代码

只要顺序不乱,你的程序就会稳很多。

三、综合练习 1:判断一个数字是正数、负数还是零

这题看起来简单,但特别适合练多分支判断。

题目:

输入一个数字,判断它是正数、负数还是 0。

先拆流程:

第一步,输入一个数字 第二步,判断它是否大于 0 第三步,如果是,输出正数 第四步,否则判断它是否小于 0 第五步,如果是,输出负数 第六步,否则输出它是 0

代码如下:

num = float(input('请输入一个数字:'))if num > 0:    print('这是一个正数')elif num < 0:    print('这是一个负数')else:    print('这是 0')

这题虽然不复杂, 但很适合你体会:

一个题目并不是“套语法”, 而是先看它有几个分支,再决定用什么结构。

四、综合练习 2:输入年龄,判断人生阶段

这题你前面零碎练过, 但现在我们用“完整题目”的方式再做一遍。

题目:

输入年龄,判断是儿童、青少年、成年人还是老年人。

先拆流程:

第一步,输入年龄 第二步,判断是否大于等于 60 第三步,如果是,输出老年人 第四步,否则判断是否大于等于 18 第五步,如果是,输出成年人 第六步,否则判断是否大于等于 12 第七步,如果是,输出青少年 第八步,否则输出儿童

代码如下:

age = int(input('请输入年龄:'))if age >= 60:    print('你属于老年人阶段')elif age >= 18:    print('你属于成年人阶段')elif age >= 12:    print('你属于青少年阶段')else:    print('你属于儿童阶段')

这个例子特别适合再提醒你一个点:

多分支判断里,条件顺序非常重要。 范围更高、要求更严格的条件,要优先放前面。

五、综合练习 3:连续输入密码,直到正确为止

现在开始把判断和循环真正结合起来。

题目:

不断让用户输入密码,直到输入正确为止。

先拆流程:

第一步,先准备一个变量保存密码 第二步,只要密码不正确,就继续输入 第三步,每输入一次,就检查是否正确 第四步,输入正确后结束循环 第五步,输出登录成功

代码如下:

password = ''while password != '123456':    password = input('请输入密码:')print('密码正确,登录成功')

这道题特别经典。 因为它能帮你真正理解:

循环不是为了“重复而重复” 而是为了“在条件满足之前,一直重复”

如果你想再练一下 break,也可以写成这样:

whileTrue:    password = input('请输入密码:')if password == '123456':        print('密码正确,登录成功')break

这两种写法都值得你看懂。

六、综合练习 4:统计 1 到 100 的和

这一题非常适合练循环和累加。

题目:

求 1 到 100 的总和。

先拆流程:

第一步,准备一个总和变量,初始为 0 第二步,从 1 开始 第三步,每次把当前数字加到总和里 第四步,数字不断加 1 第五步,到 100 为止 第六步,输出总和

代码如下:

total = 0count = 1while count <= 100:    total += count    count += 1print(f'1 到 100 的总和是:{total}')

你也可以用 for + range() 写成更简洁的版本:

total = 0for i in range(1, 101):    total += iprint(f'1 到 100 的总和是:{total}')

这个练习特别重要。 因为它会让你开始理解:

循环不仅能重复打印 还能重复做计算、累计结果

七、综合练习 5:打印 1 到 100 中的偶数

这题特别适合练“判断 + 循环”。

题目:

打印 1 到 100 中的所有偶数。

先拆流程:

第一步,从 1 开始遍历到 100 第二步,每次判断当前数字是不是偶数 第三步,如果是,打印 第四步,如果不是,跳过 第五步,继续下一个数字

代码如下:

for i in range(1, 101):if i % 2 == 0:        print(i)

如果你想练 continue,也可以写成这样:

for i in range(1, 101):if i % 2 != 0:continue    print(i)

这两种写法的结果一样。 但它们表达逻辑的角度不同。

前一种是:

偶数才打印

后一种是:

奇数先跳过,剩下的再打印

这对训练你的代码表达能力很有帮助。

八、综合练习 6:输入成绩,直到输入一个合法分数

这个练习很像真实交互程序。

题目:

让用户输入成绩。 如果分数不在 0 到 100 之间,就提示重新输入。 直到输入合法分数为止。

先拆流程:

第一步,循环开始 第二步,输入成绩 第三步,判断成绩是否在 0 到 100 之间 第四步,如果合法,就结束循环 第五步,如果不合法,就提示重新输入

代码如下:

whileTrue:    score = int(input('请输入成绩:'))if0 <= score <= 100:        print('成绩输入成功')breakelse:        print('成绩无效,请重新输入')

这题特别有价值, 因为它已经非常像真实系统会做的输入校验了。

你会明显感觉到:

循环负责反复输入 判断负责检查是否合法break 负责在满足条件时退出

这就是多个流程控制工具真正开始协同工作。

九、综合练习 7:打印九九乘法表

这个题前面单独学过, 现在放到综合阶段再看一遍,意义会不一样。

题目:

打印九九乘法表。

先拆流程:

第一步,先控制一共有几行 第二步,每一行里再控制打印几项 第三步,每一项都打印乘法表达式 第四步,每一行结束后换行

代码如下:

for i in range(1, 10):for j in range(1, i + 1):        print(f'{j}×{i}={i*j}', end='  ')    print()

这题的重要性,不只是它经典。 而是它非常典型地体现了:

外层循环控制大结构 内层循环控制细节

这正是很多更复杂问题的基础模型。

十、综合练习 8:打印一个直角三角形

这题适合练循环嵌套和图形思维。

题目:

打印一个 5 行的直角三角形。

先拆流程:

第一步,控制一共有 5 行 第二步,第 1 行打印 1 个星号 第三步,第 2 行打印 2 个星号 第四步,依次类推 第五步,每行结束后换行

代码如下:

for i in range(1, 6):for j in range(i):        print('*', end='')    print()

输出是:

***************

这道题很适合帮你继续加深一个理解:

很多图形问题,本质上都是“行数 + 每行数量”的循环嵌套。

十一、综合练习 9:输入一段文字,统计里面有多少个字符

这题适合把 for 遍历和计数结合起来。

题目:

输入一段文字,统计一共有多少个字符。

先拆流程:

第一步,输入文字 第二步,准备一个计数器,初始为 0 第三步,逐个遍历文字中的字符 第四步,每遍历一个字符,计数器加 1 第五步,输出总数

代码如下:

text = input('请输入一段文字:')count = 0for char in text:    count += 1print(f'一共有 {count} 个字符')

虽然现在你还没学字符串长度函数, 但这个练习特别好。 因为它会让你体会到:

遍历本身,就是一种很重要的处理方式

十二、综合练习 10:找到某个字符后立刻停止

这题适合练 for 和 break。

题目:

遍历一个字符串,一旦遇到字母 h,就停止。

代码如下:

text = 'Python'for char in text:    print(char)if char == 'h':        print('找到 h,停止遍历')break

这个题表面不复杂, 但很适合让你体会:

循环不是只能老老实实走到底 有时候找到目标以后,就应该立刻停

这就是 break 在真实逻辑里的价值。

十三、现在开始,你应该逐渐学会“看到题目,先识别结构”

以后碰到题目,你先不要急着写代码。 先问自己:

这是顺序结构吗 这是分支结构吗 这是循环结构吗 有没有嵌套 有没有提前结束 有没有跳过某轮

比如:

输入成绩并判断等级 明显是分支结构

连续输入密码直到正确 明显是循环 + 判断

打印乘法表 明显是循环嵌套

统计一段文字的字符数 明显是遍历 + 计数

只要你先把结构识别出来, 代码就会好写很多。

十四、很多综合题的本质,其实只是“基础结构拼起来”

比如这题:

输入用户名和密码。 如果用户名正确,再判断密码是否正确。 如果都正确,输出登录成功。 否则输出失败。

你一看可能觉得有点复杂。 其实拆开就是:

输入 外层判断 内层判断 输出

代码如下:

username = input('请输入用户名:')password = input('请输入密码:')if username == 'admin':if password == '123456':        print('登录成功')else:        print('密码错误')else:    print('用户名错误')

它并没有用到任何你没见过的新东西。 只是把前面学过的内容组合起来了。

这就是综合练习真正要帮你建立的感觉:

题目复杂,不代表知识点一定新 很多时候,只是你已经学过的结构拼起来了

十五、如果你现在写题还是容易乱,就坚持先写“口语版步骤”

这个方法真的很好用。

比如题目是:

输入一个数字,打印从 1 到这个数字的所有整数。

你可以先写:

先输入数字 再从 1 开始 每次打印当前数字 然后加 1 直到超过输入值为止

然后再翻译成代码:

num = int(input('请输入一个数字:'))count = 1while count <= num:    print(count)    count += 1

你会发现, 只要口语版步骤顺了, 代码往往就不会太乱。

十六、综合题里最容易出错的地方,不是语法,而是逻辑顺序

这个一定要提醒你。

比如一道题:

输入成绩,判断等级。

你如果把判断顺序写成:

if score >= 60:    print('及格')elif score >= 80:    print('良好')elif score >= 90:    print('优秀')

那高分也会先被“及格”拦下来。

这说明什么。

说明综合题里最常见的问题,不是不会写 if。 而是流程顺序没想清楚。

所以你以后写代码前,一定要问自己:

这个判断应该先发生,还是后发生 这个循环应该先开始,还是先做初始化 这个结束条件是不是放对位置了

逻辑顺序,比语法本身更关键。

十七、今天一定要亲手完成的 4 个综合练习

第一个,输入数字,判断正负零。

num = float(input('请输入一个数字:'))if num > 0:    print('正数')elif num < 0:    print('负数')else:    print('0')

第二个,连续输入密码直到正确。

password = ''while password != '123456':    password = input('请输入密码:')print('密码正确')

第三个,打印 1 到 100 的偶数。

for i in range(1, 101):if i % 2 == 0:        print(i)

第四个,打印 5 行直角三角形。

for i in range(1, 6):for j in range(i):        print('*', end='')    print()

这四题分别对应:

分支 循环 判断 + 遍历 循环嵌套

刚好能帮你把这一阶段的核心内容都练到。

十八、再做一个更像样的综合小程序

下面这个例子很适合作为这一阶段的真正收尾。

题目:

输入学生姓名和成绩。 如果成绩不在 0 到 100 之间,提示无效。 如果成绩有效,再输出等级评价。

先拆流程:

第一步,输入姓名 第二步,输入成绩 第三步,先判断成绩是否合法 第四步,如果不合法,输出无效 第五步,如果合法,再判断等级 第六步,根据等级输出评价

代码如下:

name = input('请输入学生姓名:')score = int(input('请输入成绩:'))if score < 0or score > 100:    print('成绩无效')else:if score >= 90:        print(f'{name},你的等级是优秀')elif score >= 80:        print(f'{name},你的等级是良好')elif score >= 60:        print(f'{name},你的等级是及格')else:        print(f'{name},你的等级是不及格')

这个程序特别有代表性。 因为它已经不是单纯一个小语法点练习了。 它把:

输入 判断 逻辑运算 嵌套判断 多分支判断

全都串起来了。

你现在如果能把这种题真正看懂、敲出来、改一改, 说明这一阶段你已经走得很扎实了。

十九、到这里,你其实已经开始具备“写完整小程序”的能力了

这一点你可能自己感觉还不强, 但其实很重要。

因为你现在已经能写:

成绩判断程序 年龄分类程序 密码循环输入程序 求和程序 字符遍历程序 乘法表程序 简单图形打印程序

这些程序虽然都不算大, 但它们已经不再只是“单句语法演示”了。

它们开始具备流程了。 开始有输入、有判断、有循环、有结果输出了。

这说明你已经从“认识语法”慢慢进入“开始组织程序”的阶段了。

这是很关键的一步。

二十、写在最后

流程控制这一阶段,真正重要的,不是你学了多少个关键词。 而是你开始明白了一件事:

程序不是一大坨代码堆在一起 而是一步一步流动的

有的地方顺着往下走 有的地方要分支 有的地方要重复 有的地方要提前结束 有的地方会一层套一层

而你前面学的这些语法, 其实都是在帮助你控制这个“流动过程”。

所以这一阶段最宝贵的,不只是 if、while、for 这些词本身。 而是你开始建立起一种真正的程序思维:

面对一个问题,先想流程 面对一个流程,先看结构 面对一个结构,再选语法

这一步一旦站稳, 你后面进入列表、字典、函数这些内容时,学习体验会完全不一样。

本文小结

流程控制的核心,就是让程序学会顺序执行、条件判断和重复执行。 综合题的关键,不是记住更多语法,而是学会把问题拆成步骤。 很多看起来复杂的题,本质上只是顺序、分支、循环、嵌套这几种结构的组合。 写综合程序时,最重要的习惯是:先拆流程,再写代码。 如果你已经能写出几个带输入、判断、循环的小程序,说明你已经真正迈进编程入门阶段了。

下篇预告

从下一篇开始,我们进入第四阶段。

第 31 篇 列表 list 入门:Python 最常用的数据容器

从那里开始,你会发现:前面学的判断、循环,终于有了更像样的数据对象去操作。

最新文章

随机文章