概览
- 条件语句(if/elif/else嵌套)
- 循环结构(while/for循环)
- 循环控制(break/continue/pass)
- 实战:猜数字游戏/乘法表生成
流程控制是编程的核心基础,决定了代码的执行逻辑。Python提供了强大的流程控制工具,让我们能够编写灵活高效的程序。本文将深入讲解Python中的流程控制结构,包括条件语句、循环结构以及循环控制语句,并通过两个实战项目巩固所学知识。
一、条件语句(if/elif/else嵌套)
条件语句允许根据不同的条件执行不同的代码块,是程序决策的基础。
基本语法
if 条件1:
# 条件1成立时执行
elif 条件2:
# 条件2成立时执行
else:
# 所有条件均不成立时执行
嵌套示例:成绩评级系统
score = 85
if score >= 90:
grade = "A"
elif score >= 80:
# 嵌套条件判断
if score >= 85: # 80-89分区间再细分
grade = "B+"
else:
grade = "B"
elif score >= 70:
grade = "C"
else:
grade = "D(不及格)"
print(f"成绩等级:{grade}")
关键点:
- if 语句必须有,elif和else可选
- 条件表达式结果为布尔值(True/False)
- 支持逻辑运算符:and, or, not
二、循环结构
1. while循环:当条件满足时重复执行
count = 0
while count < 5:
print(f"这是第{count+1}次循环")
count += 1 # 等效于 count = count + 1
2. for循环:遍历序列中的元素
# 遍历列表
fruits = ["苹果", "香蕉", "橙子"]
for fruit in fruits:
print(f"我喜欢吃{fruit}")
# 配合range()生成数字序列
for i in range(3): # 0, 1, 2
print(f"循环次数:{i}")
for i in range(1, 10, 2): # 1~9,步长为2
print(f"奇数:{i}")
循环应用场景对比
| 循环类型 | 适用场景 | 特点 |
|---|---|---|
| while | 不确定循环次数(如用户输入验证) | 需手动更新循环条件 |
| for | 遍历已知序列(列表、字符串等) | 自动迭代 |
三、循环控制语句
1. break:立即终止整个循环
# 在数字1-10中查找第一个能被3整除的数
for num in range(1, 11):
if num % 3 == 0:
print(f"找到第一个3的倍数:{num}")
break
2. continue:跳过本次循环剩余代码
# 打印1-10中所有的奇数
for num in range(1, 11):
if num % 2 == 0:
continue # 跳过偶数
print(num)
3. pass:空操作占位符
# 函数未实现时占位
def future_feature():
pass # TODO: 后续实现此功能
控制语句对比表
| 语句 | 作用 | 使用场景 |
|---|---|---|
| break | 完全终止循环 | 满足条件时立即退出循环 |
| continue | 跳过当前循环的剩余代码 | 排除特定情况继续循环 |
| pass | 空操作,保持语法完整性 | 占位尚未实现的代码块 |
四、实战项目
项目1:猜数字游戏
import random
number = random.randint(1, 100) # 生成1-100的随机数
attempts = 0
print("欢迎来到猜数字游戏!")
print("我已经想了一个1到100之间的整数,请开始猜测吧~")
while True:
guess = int(input("请输入你的猜测:"))
attempts += 1
if guess < number:
print("猜小了,再试试!")
elif guess > number:
print("猜大了,再试试!")
else:
print(f"恭喜!你在{attempts}次尝试后猜中了数字{number}!")
break
项目2:乘法表生成器
# 生成9x9乘法表
for i in range(1, 10):
for j in range(1, i+1):
# 格式化输出,保持对齐
print(f"{j}x{i}={i*j}", end='\t')
print() # 每行结束换行
# 进阶:生成任意乘法表
n = int(input("请输入乘法表尺寸:"))
for row in range(1, n+1):
for col in range(1, row+1):
result = row * col
print(f"{col}x{row}={result}", end=' '*(4-len(str(result))))
print()
本文由元来智联开发团队出品:元来智联-网站、小程序等定制开发,专业开发服务商