Python程序默认按顺序逐行执行,但实际开发中需要根据条件做出决策或重复执行代码块。流程控制语句正是为了解决这两类问题:条件判断使程序具备“智能决策”能力,循环结构则让重复操作变得简洁高效。本文将从条件判断(if/elif/else)、循环语句(for/while)以及循环控制关键字(break/continue/pass)入手,配合完整代码示例,并梳理新手最易踩的四大坑,帮你一次吃透Python流程控制。
一、条件判断语句(if/elif/else)
条件判断是程序的“大脑”,根据布尔表达式True/False决定执行路径。Python共支持三种模式:单分支、双分支、多分支以及嵌套判断。
- # 单分支if:仅满足条件时执行
- age = 20
- if age >= 18:
- print("已成年,可参与成年人权限操作")
- # 双分支if-else:二选一
- score = 58
- if score >= 60:
- print("考试及格,顺利通过")
- else:
- print("考试不及格,需要补考")
- # 多分支if-elif-else:多档位匹配(注意顺序!)
- score = 88
- if score >= 90:
- print("成绩等级:优秀")
- elif score >= 75:
- print("成绩等级:良好")
- elif score >= 60:
- print("成绩等级:及格")
- else:
- print("成绩等级:不及格")
- # 嵌套判断:先过滤外部条件,再细化内部条件
- age = 19
- is_student = True
- if age >= 18:
- print("年龄符合成年标准")
- if is_student:
- print("身份:成年学生,可享受学生优惠")
- else:
- print("身份:成年社会人士")
- else:
- print("未成年,无对应权限")
复制代码
核心要点:
• 条件表达式结果为bool类型,True执行代码块,False跳过。
• 冒号:必须写在if/elif/else行尾,漏写会触发SyntaxError。
• Python用缩进(通常4个空格)界定代码块,缩进不一致会导致IndentationError。
• 多分支中,elif按从上到下顺序匹配,前一个条件一旦满足便不再继续后续检查,因此严格条件(如分数90)必须写在宽松条件(如60)之前,否则会出现“优秀”永远不会被匹配的逻辑错误。
二、循环语句(for循环 + while循环)
Python提供两种循环机制:for循环擅长遍历已知序列(列表、字符串、range等),while循环适合条件驱动的未知次数循环。
- # for循环:固定次数遍历(搭配range)
- for i in range(5):
- print(f"第{i+1}次循环执行")
- # for循环:遍历列表
- fruit_list = ["苹果", "香蕉", "橙子", "葡萄"]
- for fruit in fruit_list:
- print("当前水果:", fruit)
- # for循环:遍历字符串
- str_text = "Python入门"
- for char in str_text:
- print("单个字符:", char)
- # while循环:条件循环,需手动控制退出
- count = 0
- while count < 3:
- print("坚持学习Python,每日精进!")
- count += 1 # 必须自增,否则死循环
复制代码
for循环优势:自动迭代,无需编写索引,几乎不会出现死循环。while循环优势:灵活,适合需要持续监听的场景,但必须保证条件变量能在循环体内趋近于False,否则程序卡死。
三、循环控制关键字:break、continue、pass
三个关键字分别解决“提前终止”、“跳过本轮”和“占位”三种需求。
- # break:直接跳出整个循环
- for i in range(1, 6):
- if i == 3:
- break
- print("当前数字:", i)
- # 输出:1、2
- # continue:跳过当前迭代,进入下一轮
- for i in range(1, 6):
- if i == 3:
- continue
- print("当前数字:", i)
- # 输出:1、2、4、5
- # pass:空操作占位,保证语法完整
- if 10 > 5:
- pass # 后续再补充实现
复制代码
四、新手高频避坑指南(90%踩过)
- 缩进错误:Python严格依赖缩进区分代码块,if/for/while下方的语句必须缩进,否则抛出IndentationError。
- while死循环:忘记在循环体内更新条件变量(如count += 1),导致条件永远为True,程序卡死。
- 多分支顺序颠倒:宽松条件(如>=60)放前面,严格条件(如>=90)放后面,导致严格条件永远无法执行。
- 漏写冒号:if、elif、else、for、while语句末尾忘记加冒号,直接触发语法错误。
五、场景选型对照
• if单分支:仅需判断一种条件成立时使用,如“是否成年”。
• if-else双分支:非此即彼场景,如“及格/不及格”。
• if-elif-else多分支:多档位评级,如成绩A/B/C/D。
• for循环:遍历已知集合、固定次数操作,代码简洁且无死循环风险。
• while循环:未知循环次数或需要持续监听,如服务器消息轮询,但必须手动维护退出条件。
掌握以上内容,你就能用Python流程控制写出逻辑清晰、健壮的程序。实际开发中,每天都会用到这些结构,建议多动手练习,逐步内化。 |