作者:还怪好嘞发布时间:2026-05-25难度:⭐⭐⭐阅读时长:约30分钟前言程序的核心能力在于决策与重复。条件判断让程序能够根据不同情况做出不同选择,循环控制则让程序能够高效地处理重复性任务。本文将深入讲解Python中的条件判断与循环控制机制,从基础语法到底层原理,助你写出更优雅、更高效的代码。一、条件判断:程序的智能决策1.1 if/elif/else 基础语法Python的条件判断语法简洁直观,使用缩进来表示代码块。# 基础条件判断score=85ifscore=90:grade='A'elifscore=80:grade='B'elifscore=70:grade='C'elifscore=60:grade='D'else:grade='F'print(f"成绩等级:{grade}")# 输出: 成绩等级: B关键要点:elif是 “else if” 的缩写,可以有多个条件判断从上到下执行,第一个为True的条件会被执行,其余被跳过使用4个空格缩进(PEP 8规范)1.2 条件表达式(三元运算符)Python支持简洁的条件表达式:# 传统写法ifage=18:status="成年人"else:status="未成年人"# 条件表达式(更简洁)status="成年人"ifage=18else"未成年人"# 嵌套条件表达式(谨慎使用,可读性降低)result="优秀"ifscore=90else"良好"ifscore=80else"及格"ifscore=60else"不及格"1.3 match-case 模式匹配(Python 3.10+)Python 3.10引入了match-case语句,提供更强大的模式匹配能力:defhandle_command(command):matchcommand:case"start":return"启动系统"case"stop":return"停止系统"case"restart":return"重启系统"case_:returnf"未知命令:{command}"# 带数据提取的模式匹配defanalyze_point(point):matchpoint:case(0,0):return"原点"case(x,0):returnf"x轴上的点,x={x}"case(0,y):returnf"y轴上的点,y={y}"case(x,y):returnf"普通点,坐标({x},{y})"case_:return"不是有效的点"print(analyze_point((3,0)))# 输出: x轴上的点,x=3match-case vs if-elif 对比:特性if-elifmatch-case版本要求所有Python版本Python 3.10+适用场景复杂条件判断数据结构匹配可读性条件复杂时较差模式清晰时更好性能逐个条件判断内部优化,通常更快二、布尔值的本质2.1 真值测试规则在Python中,以下值被视为False:NoneFalse数值零:0,0.0,0j空序列:'',[],(),{},set(),range(0)其余所有值都被视为True。# 真值测试示例values=[0,1,"","hello",[],[1,2],None,True]forvinvalues:ifv:print(f"{v!r}是真值")else:print(f"{v!r}是假值")2.2 短路求值Python的and和or运算符使用短路求值:# and: 第一个为False就返回第一个值,否则返回第二个值result1=0and100# 结果: 0result2=50and100# 结果: 100# or: 第一个为True就返回第一个值,否则返回第二个值result3=0or100# 结果: 100result4=50or100# 结果: 50# 实用技巧:设置默认值name=user_inputor"匿名用户"三、循环控制:重复的艺术3.1 for 循环Python的for循环用于遍历可迭代对象:# 遍历列表fruits=["苹果","香蕉","橙子"]forfruit