当前位置:首页>python>Python 流程控制:让程序学会"思考"

Python 流程控制:让程序学会"思考"

  • 2026-10-11 06:23:25
Python 流程控制:让程序学会"思考"

Rs知识库 · Python 零基础入门系列 · 第二篇

上一篇我们学会了变量和输入输出,但程序只能一条路走到黑——它不会判断、不会选择、不会重复。这一篇,我们给程序装上"大脑":用 if/else 做选择,用 for/while 做重复。学完之后,你就能做出「密码强度检测器」这样的实用工具了。

本文目录

①比较运算符与逻辑运算符

②if / elif / else:让程序做选择

③for 循环:已知次数的重复

④while 循环:条件循环与 break/continue

⑤实战项目:智能密码强度检测器

⑥动手练习与总结

比较运算符:判断 True 还是 False

程序做选择之前,得先能"判断"。比较运算符就是用来做判断的工具,它的结果只有两种:True(真)或 False(假)。这就是上一篇提到的 bool 布尔类型派上用场的时候。

# 比较运算符print(5 == 5)    # True    等于print(5 != 3)    # True    不等于print(10 > 7)    # True    大于print(3 >= 3)    # True    大于等于print(2 < 1)    # False   小于

注意:== 是"判断是否相等",= 是"赋值"。两个等号和一个是等号完全不同,这是初学者最常踩的坑。

除了比较运算符,还有逻辑运算符and、or、not,用来组合多个条件:

age = 20has_id = True# and:两个条件都要满足print(age >= 18and has_id)  # True# or:满足一个就行print(age < 10or age > 60)  # False# not:取反print(not has_id)         # False

if / elif / else:让程序做选择

没有条件判断的程序,只能一条路走到黑。有了 if,程序就能根据情况走不同的路。想象你站在路口——如果下雨就带伞,否则就不带:

weather = input("今天天气如何?")if weather == "下雨":print("带伞出门")elif weather == "晴天":print("涂防晒")else:print("正常出门")

⚠️ 缩进很重要!Python 用缩进(4 个空格)表示"这段代码属于上面的 if"。缩进错了程序会报 IndentationError。这是 Python 和其他语言最大的区别——在 Java、C++ 里缩进只是好看,在 Python 里缩进是语法。

再看一个更实用的例子——成绩等级判定:

score = int(input("请输入你的分数:"))if score >= 90:print("优秀 🌟")elif score >= 80:print("良好 👍")elif score >= 60:print("及格 ✓")else:print("不及格 ✗,继续加油!")

🎯 if/elif/else 的判断顺序是从上到下的。一旦某个条件为 True,就执行对应的代码块,后面的条件不再检查。所以要把最严格的条件放前面。

语法要点速记:

●每个 if / elif / else 后面都要加冒号 :

●缩进用 4 个空格,不要混用 Tab 和空格

●elif 可以有多个,else 最多一个(也可以不写)

●if 可以嵌套使用(if 里面再写 if),但不要超过 3 层,否则代码难以阅读

for 循环:已知次数的重复

生活中很多事情需要重复:每天跑步 5 圈、打印 100 份文件、遍历一个列表里的所有数据。for 循环就是用来做"已知要重复多少次"的事情。

# 打印 1 到 5for i inrange(1, 6):print(i)# 输出:1 2 3 4 5(每个一行)

range(1, 6) 生成从 1 到 5 的数字序列——注意不包含 6,这是 Python 的惯例(左闭右开)。range(10) 等价于 range(0, 10),生成 0 到 9。

range(n)

0, 1, 2, ..., n-1

range(a, b)

a, a+1, ..., b-1

range(a, b, step)

每隔 step 取一个数

range(1, 10, 2)

1, 3, 5, 7, 9(奇数)

for 循环还有一个非常实用的用法——遍历字符串。这在后续项目中会用到:

# 逐字符遍历for char in"Python":print(char)# 输出:P y t h o n(每个一行)# 用 enumerate 同时获取索引和值for i, char inenumerate("Python"):print(f"第{i}个字符是 {char}")

while 循环:条件循环

for 是"我知道要重复几次",while 是"我不知道要重复几次,但只要条件满足就一直做"。比如:不断让用户输入,直到输入正确为止。

# 不断让用户输入,直到输入"退出"whileTrue:    answer = input("说点什么(输入"退出"结束):")if answer == "退出":break# 跳出循环print(f"你说的是:{answer}")

break vs continue:两种"跳过"

break

立刻停止!整个循环结束,不再执行后续任何迭代。

continue

跳过这一次!回到循环开头,继续下一次迭代。

⚠️ 用 while 时一定要确保循环条件最终会变为 False(或者有 break 跳出),否则就是死循环——程序卡住不动,只能强制关闭。

来看一个 continue 的例子——只打印奇数:

for i inrange(1, 11):if i % 2 == 0:    # 如果是偶数continue# 跳过,不打印print(i)           # 只打印奇数# 输出:1 3 5 7 9

实战项目:智能密码强度检测器

学了条件判断和循环,是时候做一个有实际用途的项目了。我们来做一个「密码强度检测器」——用户输入密码,程序从长度、大写字母、数字、特殊字符四个维度打分,给出弱/中/强/很强的评级,并提供改进建议。

多层 if-elif-elsefor 遍历字符逻辑组合判断while 循环交互

完整代码:新建 password_checker.py 并运行:

# 智能密码强度检测器defcheck_password(pwd):    score = 0    feedback = []# 检查长度iflen(pwd) >= 8:        score += 1else:        feedback.append("密码长度应至少 8 位")# 检查大写字母ifany(c.isupper() for c in pwd):        score += 1else:        feedback.append("建议加入大写字母")# 检查数字ifany(c.isdigit() for c in pwd):        score += 1else:        feedback.append("建议加入数字")# 检查特殊字符    special = "!@#$%^&*"ifany(c in special for c in pwd):        score += 1else:        feedback.append("建议加入特殊字符(如 !@#)")# 评级    levels = ["弱 🔴", "中 🟡", "强 🟢", "很强 🛡️"]return levels[score], feedback# 主程序:循环检测直到密码合格print("=== 密码强度检测器 ===")whileTrue:    pwd = input("\n请输入密码:")    level, tips = check_password(pwd)print(f"强度评级:{level}")if"强"in level or"很强"in level:print("🎉 密码合格!")breakprint("改进建议:")for tip in tips:print(f"  → {tip}")

这个程序用到了本篇学到的所有核心知识:用 def 定义函数(把检测逻辑封装起来),用 for 遍历密码的每个字符,用 if/else 做判断,用 while 循环让用户反复尝试直到密码合格。

💡 代码解读

any() 函数:any(c.isupper() for c in pwd) 的意思是"密码中有没有大写字母?有任意一个是就返回 True"。

列表索引取评级:levels[score] 用分数直接取出对应等级的文字,比写一堆 if/elif 简洁得多。

while True + break:这是"反复交互直到满意"的经典模式,在菜单系统、游戏中非常常见。

动手练习

1

闰年判断器简单

输入年份,判断是否为闰年。规则:能被 4 整除且不能被 100 整除,或能被 400 整除。

2

九九乘法表中等

用两层 for 循环打印 9×9 乘法表,注意用 f-string 对齐格式让输出整齐。

3

石头剪刀布中等

模拟石头剪刀布游戏:用户出拳,电脑用 random.choice() 随机出拳,用 if/elif 判断胜负。

总结与下一步

恭喜你完成了编程的第二步!现在你的程序不再只能"一条路走到黑"了,它学会了根据条件做选择,也学会了重复执行任务。在这篇文章中,你掌握了:

●比较运算符(==、!=、>、<)和逻辑运算符(and、or、not)

●if / elif / else 条件分支,让程序做选择

●for 循环搭配 range() 做已知次数的重复

●while 循环搭配 break/continue 做条件循环

●完成了一个密码强度检测器,综合运用所有流程控制

下一篇预告

数据容器——组织和管理数据。你将学到列表(List)、字典(Dictionary)、元组和集合,掌握增删改查和切片操作,做一个「通讯录管理系统」。

列表 List字典 Dict列表推导式通讯录项目

Rs知识库 · Python 零基础入门系列

觉得有用?点个「在看」支持一下 👇

最新文章

随机文章