前言
控制结构是 Python 编程的核心骨架,任何复杂程序都离不开三大基础结构:顺序、分支、循环。本文从核心概念、语法细节到实战案例,全方位拆解 Python 控制结构,适合零基础入门者系统学习,也可作为进阶者的查漏补缺手册~
零、必背核心知识点
1. 三大语句结构定义
- 顺序结构:代码默认执行逻辑,从上往下逐行执行,无跳转。
- 分支结构:根据条件真假决定代码走向,实现 “选择执行”。
- 循环结构:让指定代码块重复执行,直到满足结束条件。
2. 关键运算符(控制结构必备)
| 运算符类型 | 具体符号 & 说明 | 示例 |
|---|---|---|
| 算术运算符 | +(加)、-(减)、*(乘)、/(除)、//(取整)、%(取余)、**(幂运算) | 2**3=8、7//2=3、7%2=1 |
| 赋值运算符 | =(基础赋值)、+=、-=、*= 等复合赋值 | x +=1 等价于 x = x +1 |
| 比较运算符 | ==(等于)、!=(不等于)、>、<、>=、<= | 3>5→False、6==6→True |
| 逻辑运算符 | and (与)、or (或)、not (非) | age>18 and score>=60(同时满足) |
3. 循环核心原则
- 循环次数明确 → 优先用
for循环 - 循环次数不明确 → 优先用
while循环 break:跳出最近一层循环(直接结束循环)continue:结束本次循环(跳过后续代码,直接进入下一次)
4. 嵌套循环本质
- 外层循环执行 1 次,内层循环完整执行 1 轮
- 打印图形场景:外层控制行数,内层控制列数
一、分支结构(选择执行逻辑)
分支结构的核心是 “根据条件判断,执行不同代码块”,分为 4 种常见形式:
1. 单分支结构(满足条件才执行)
语法格式:
python
运行
if 条件表达式: 代码块 # 条件为True时执行,注意缩进(4个空格)执行流程:
判断if后表达式真假 → 真则执行代码块,假则跳过代码块。
示例:
python
运行
score = 85 if score >= 60: print("成绩及格") # 输出:成绩及格2. 双分支结构(二选一执行)
if 条件表达式: 代码块1 # 条件为True时执行 else: 代码块2 # 条件为False时执行执行流程:
条件真 → 执行代码块 1;条件假 → 执行代码块 2,二者必选其一。
示例:
age = 17 if age >= 18: print("已成年") else: print("未成年") # 输出:未成年3. 多分支结构(多选一执行)
语法格式:
if 条件表达式1: 代码块1 elif 条件表达式2: 代码块2 elif 条件表达式3: 代码块3 ... else: 代码块n # 所有条件都为假时执行执行流程:
- 依次判断条件,只要有一个条件为真,执行对应代码块后直接退出分支(后续条件不再判断)
- 所有条件都为假时,执行
else代码块
示例:
score = 75 if score >= 90: print("优秀") elif score >= 80: print("良好") elif score >= 60: print("及格") # 输出:及格 else: print("不及格")4. 分支嵌套(条件叠加判断)
定义:
分支语句的代码块中包含另一个分支,用于处理 “多条件叠加” 场景。
语法格式:
if 条件1: if 条件2: 代码块1 # 条件1和条件2都为真时执行 else: 代码块2 # 条件1真、条件2假时执行 else: 代码块3 # 条件1假时执行示例:
age = 20 has_id = True if age >= 18: if has_id: print("可进入网吧") # 输出:可进入网吧 else: print("需出示身份证") else: print("未成年禁止进入")二、循环结构(重复执行逻辑)
循环结构用于让指定代码块重复执行,Python 中主要有for循环和while循环两种。
1. for 循环(适合确定循环次数)
语法格式:
for 变量 in 可迭代对象: 代码块 # 每次取一个元素赋值给变量,执行一次代码块关键说明:
- 可迭代对象:列表、字符串、
range()函数等 range()函数用法:range(n):生成 0~n-1 的整数序列(如range(5)→[0,1,2,3,4])range(a,b):生成 a~b-1 的整数序列(如range(1,5)→[1,2,3,4])range(a,b,step):步长为 step 的整数序列(如range(1,10,2)→[1,3,5,7,9])
执行流程:
从可迭代对象中逐个取元素赋值给变量 → 执行代码块 → 元素取完后循环结束。
示例 1:遍历列表
fruits = ["苹果", "香蕉", "橙子"] for fruit in fruits: print(f"我喜欢吃{fruit}") # 输出: # 我喜欢吃苹果 # 我喜欢吃香蕉 # 我喜欢吃橙子示例 2:遍历字符串
str = "Python" for char in str: print(char) # 输出:P y t h o n(逐行输出)2. while 循环(适合不确定循环次数)
语法格式:
while 循环条件: 代码块 # 条件为True时执行,执行后重新判断条件关键说明:
- 循环条件:必须是返回布尔值(True/False)的表达式
- 注意避免 “死循环”:循环体中需有改变条件的代码(如变量自增 / 自减)
执行流程:
判断循环条件 → 真则执行代码块 → 再次判断条件 → 假则循环结束。
示例 1:基础用法(循环 10 次)
i = 0 while i < 10: print(f"循环第{i+1}次") i += 1 # 改变循环条件,避免死循环示例 2:不确定次数(直到输入正确)
password = "123456" input_pwd = "" while input_pwd != password: input_pwd = input("请输入密码:") print("密码正确,登录成功!")3. 循环控制关键字(break & continue)
1)break:跳出最近一层循环
# 示例:找到数字5后退出循环 for i in range(10): if i == 5: break print(i) # 输出:0 1 2 3 42)continue:跳过本次循环,进入下一次
# 示例:跳过偶数,打印奇数 for i in range(10): if i % 2 == 0: continue print(i) # 输出:1 3 5 7 94. 循环嵌套(多层重复执行)
核心原则:
外层循环执行 1 次,内层循环完整执行 1 轮。
关键技巧:
- 打印图形时:外层控制行数,内层控制列数
- 不换行打印:
print("内容", end="")(默认 end="\n" 换行)
案例 1:打印等腰三角形(4 行)
# 外层for循环:控制行数(i=1~4) for i in range(1, 5): # 内层循环1:打印前置空格(让三角形居中) for j in range(1, 5 - i): print(" ", end="") # 内层循环2:打印星号(每行星号数=2i-1) for k in range(1, 2 * i): print("*", end="") # 每行结束后换行 print("")执行结果:
* *** ***** *******案例 2:打印九九乘法表
# 外层循环:控制行数(i=1~9,代表被乘数) for i in range(1, 10): # 内层循环:控制每行式子数量(j=1~i,代表乘数) for j in range(1, i + 1): # 制表符\t保证对齐,end=""不换行 print(f"{j}*{i}={i*j}", end="\t") # 每行结束后换行 print("")执行结果:
1*1=1 1*2=2 2*2=4 1*3=3 2*3=6 3*3=9 1*4=4 2*4=8 3*4=12 4*4=16 1*5=5 2*5=10 3*5=15 4*5=20 5*5=25 1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36 1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49 1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64 1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81三、常见问题与注意事项
- 缩进问题:Python 用缩进(4 个空格)区分代码块,分支和循环的代码块必须缩进,否则报错。
- 死循环:
while循环需确保条件能变为 False(如变量自增),否则会无限循环。 - 分支判断顺序:多分支结构中,条件范围大的要放在后面(如
score>=60不能放在score>=80前面)。 - 嵌套循环效率:嵌套层数越多效率越低,尽量控制在 2-3 层内。
总结
Python 控制结构是编程的基础核心,掌握 “顺序 + 分支 + 循环” 的组合用法,就能实现大部分业务逻辑。本文通过 “概念 + 语法 + 示例 + 案例” 的形式,覆盖了控制结构的所有核心知识点,新手可先理解基础语法,再通过案例实操巩固(建议亲手运行代码,观察执行结果)。
如果有疑问或补充,欢迎在评论区交流~ 觉得有用的话,记得点赞收藏哦!