python程序流程控制

张开发
2026/4/12 10:27:39 15 分钟阅读

分享文章

python程序流程控制
一、行的概念1.1 物理行定义程序员在编辑器中手动编写代码时肉眼可见的每一行是代码的「视觉行」。示例print(Hello) a 1 2 3上面两行代码就是两个物理行。1.2 逻辑行定义Python解释器实际执行的一条完整指令是代码的「功能行」。示例# 一个物理行 一个逻辑行最推荐的写法 num 10 print(num * 2)1.3 编码规范建议优先原则一个逻辑行对应一个物理行。这是Python官方推荐的编码风格代码可读性最高。特殊场景若需在一个物理行中写多个逻辑行必须用分号;分隔不推荐频繁使用仅适用于极简场景。示例# 一个物理行包含两个逻辑行分号分隔 a 5; print(a * 3) # 解释器会依次执行「赋值」和「打印」两个逻辑行1.4 长逻辑行的换行技巧隐式换行定义在括号()/[]/{}内的内容换行Python 解释器会自动识别为同一逻辑行无需额外标记。优势无需手动加符合代码更简洁是python中最常用的换行方式。示例# 列表[]内隐式换行 fruits [ apple, banana, orange ] # 表达式()内隐式换行 total ( 10 20 30 40 50 ) # 字典{}内隐式换行 person { name: Alice, age: 25, city: Beijing }显式换行定义通过折行符\反斜杠标记换行需将\放在一行的末尾告诉解释器「下一行是本行的延续」。注意\后必须紧跟换行不能有空格或其他字符否则会报错。示例# 显式换行反斜杠 total 10 20 30 \ 40 50 60 # 错误示例\后有空格 # total 10 20 \ 空格 # 30 40 # 解释器会报错二、选择语句选择语句的核心是根据条件选择性执行代码Python中最常用的就是if-else系列语句。2.1 基础if-else语句作用让程序根据“条件是否成立”二选一执行代码块。语法if 条件表达式: 条件成立时执行的代码块 else: 条件不成立时执行的代码块实战练习体温判断需求输入体温36~37之间输出“正常”否则输出“异常”。# 输入体温并转换为浮点数 temperature float(input(请输入体温)) # 判断逻辑 if 36 temperature 37: print(正常) else: print(异常)2.2 省略else仅判断“满足条件”的场景如果只需要在条件成立时执行代码不成立时无操作可省略else。语法if 条件表达式: 条件成立时执行的代码块实战练习课程阶段匹配需求输入课程阶段数输出对应课程名称仅处理1-4的情况。stage int(input(请输入课程阶段数)) if stage 1: print(Python语言核心编程) if stage 2: print(Python高级软件技术) if stage 3: print(Web 全栈) if stage 4: print(人工智能)2.3 elif多条件分支判断当需要判断“多个互斥条件”时用elifelse if的简写更高效避免多层if嵌套。语法if 条件1: 条件1成立执行的代码 elif 条件2: 条件2成立执行的代码 ... else: 所有条件都不成立执行的代码实战练习1判断数字正负零num float(input(请输入一个数字)) if num 0: print(正数) elif num 0: print(负数) else: print(零)实战练习2智商等级计算需求根据心理年龄(MA)和实际年龄(CA)计算IQ判断智商等级IQMA/CA*100。# 输入并转换为整数 ma int(input(请输入心理年龄)) ca int(input(请输入实际年龄)) # 计算IQ注意除法用/避免整数除法 iq ma / ca * 100 # 多分支判断 if iq 140: print(天才) elif 120 iq 139: print(超常) elif 110 iq 119: print(聪慧) elif 90 iq 109: print(正常) elif 80 iq 89: print(迟钝) else: print(低能)1.4 if嵌套条件里套条件当判断逻辑需要“先大条件后小条件”时用if嵌套。实战练习月份天数判断需求输入月份输出对应天数1/3/5/7/8/10/12→31天2→29天4/6/9/11→30天其他提示月份有误。month int(input(请输入月份)) # 外层判断月份是否合法 if 1 month 12: # 内层判断天数 if month 2: print(29天) elif month 4 or month 6 or month 9 or month 11: print(30天) else: print(31天) else: print(请输入正确的月份)三、循环语句让程序“重复做”循环语句的核心是重复执行一段代码Python中主要有while和for两种适用场景不同。3.1 while循环“条件满足就继续”while擅长根据条件重复执行只要条件为True就会一直循环。基础语法while 条件表达式: 循环体代码场景1无限循环程序重复执行代码需求让代码重复执行。while True: # 无限循环 # 执行核心逻辑示例打印提示 print(\n 程序运行中 )代码说明while True是无限循环请不要轻易尝试。场景2循环计数按规律生成数字练习1按规律输出数字# 输出0 1 2 3 i 0 while i 3: print(i, end ) i 1 # 计数自增 print() # 输出2 3 4 5 6 i 2 while i 6: print(i, end ) i 1 print() # 输出1 3 5 7 i 1 while i 7: print(i, end ) i 2 print() # 输出8 7 6 5 4 i 8 while i 4: print(i, end ) i - 1 print() # 输出-1 -2 -3 -4 -5 i -1 while i -5: print(i, end ) i - 1 print()练习2纸张对折超珠峰需求纸厚0.01毫米计算对折多少次超过珠峰8844.43米8844430毫米。thickness 0.01 # 初始厚度毫米 height 8844430 # 珠峰高度毫米 count 0 # 对折次数 while thickness height: thickness * 2 # 对折厚度翻倍 count 1 # 次数1 print(f对折{count}次后厚度{thickness:.2f}毫米超过珠峰)3.2 for循环“按次数/遍历重复”for擅长固定次数循环或遍历可迭代对象如列表、范围语法更简洁。基础语法for 变量 in 可迭代对象: 循环体代码常用range(start, end, step)生成数字序列左闭右开。场景1按规律累加数字# 累加0 1 2 3 sum_num 0 for i in range(4): # range(4)0,1,2,3 sum_num i print(f0123{sum_num}) # 输出6 # 累加2 3 4 5 6 sum_num 0 for i in range(2, 7): # range(2,7)2,3,4,5,6 sum_num i print(f23456{sum_num}) # 输出20 # 累加1 3 5 7 sum_num 0 for i in range(1, 8, 2): # 步长2 sum_num i print(f1357{sum_num}) # 输出16 # 累加8 7 6 5 4 sum_num 0 for i in range(8, 3, -1): # 反向步长-1 sum_num i print(f87654{sum_num}) # 输出30 # 累加-1 -2 -3 -4 -5 sum_num 0 for i in range(-1, -6, -1): sum_num i print(f-1-2-3-4-5{sum_num}) # 输出-15场景2纸张对折15次的厚度thickness 0.01 # 初始厚度 for _ in range(15): # 固定15次循环无需变量用_ thickness * 2 print(f对折15次后厚度为{thickness:.2f}毫米) # 输出327.68毫米场景3猜数字猜对结束循环# 1. 导入库 import random # 2. 产生随机数 random_number random.randint(1, 100) # 3. 核心代码 count 0 while True: input_number int(input(请输入数字)) count 1 if input_number random_number: print(大了) elif input_number random_number: print(小了) else: print(f猜对了一共猜了{count}次) break3.3 while vs for核心区别循环类型适用场景示例while根据条件重复不确定次数纸张对折到超过珠峰次数未知for固定次数重复确定次数纸张对折15次次数已知四、跳转语句控制循环节奏跳转语句用于中断/跳过循环包括break和continue。4.1 break直接跳出循环break会立即终止整个循环循环体后续代码不再执行。4.2 continue跳过当前轮次continue会跳过当前轮次剩余代码直接进入下一轮循环。实战练习累加1到100之间的被3整除的整数和思路1符合条件才累加number 0 for i in range(1, 101): if i % 3 0: number i print(f思路1结果{number})思路2不符合就跳过sum 0 for item in range(1, 101): if item % 3 ! 0: # 跳出本次循环执行下一次循环 continue sum item print(f思路2结果{sum}) # 和思路1结果一致五、核心总结选择语句if-else/elif/嵌套核心是“条件判断”elif适合多分支互斥场景嵌套适合多层条件筛选

更多文章