Appearance
🔄 Python 控制流程
控制流程概述
控制流程是编程中的核心概念,它决定了程序执行的顺序和逻辑。Python 提供了多种控制流程结构:
- 条件语句:根据条件决定执行哪些代码
- 循环语句:重复执行某些代码
- 异常处理:处理程序运行时的错误
🔀 条件语句
if 语句
python
# 基本 if 语句
age = 18
if age >= 18:
print("你已经成年了")
# if-else 语句
score = 85
if score >= 60:
print("及格了")
else:
print("需要继续努力")
# if-elif-else 语句
temperature = 25
if temperature > 30:
print("天气很热")
elif temperature > 20:
print("天气温暖")
elif temperature > 10:
print("天气凉爽")
else:
print("天气寒冷")嵌套条件
python
# 嵌套 if 语句
age = 20
has_license = True
if age >= 18:
if has_license:
print("可以开车")
else:
print("需要先考驾照")
else:
print("年龄不够,不能开车")条件表达式(三元运算符)
python
# 基本用法
age = 20
status = "成年" if age >= 18 else "未成年"
print(f"状态: {status}")
# 嵌套条件表达式
score = 85
grade = "优秀" if score >= 90 else "良好" if score >= 80 else "及格" if score >= 60 else "不及格"
print(f"等级: {grade}")逻辑运算符
python
# and 运算符
age = 20
has_license = True
if age >= 18 and has_license:
print("可以开车")
# or 运算符
weather = "晴天"
temperature = 25
if weather == "晴天" or temperature > 20:
print("适合外出")
# not 运算符
is_weekend = False
if not is_weekend:
print("今天是工作日")
# 复杂逻辑
score = 85
attendance = 0.9
if score >= 80 and attendance >= 0.8:
print("可以获得奖学金")🔁 循环语句
for 循环
基本 for 循环
python
# 遍历列表
fruits = ["苹果", "香蕉", "橙子"]
for fruit in fruits:
print(f"我喜欢{fruit}")
# 遍历字符串
text = "Python"
for char in text:
print(char)
# 遍历字典
student = {"name": "张三", "age": 20, "grade": "A"}
for key, value in student.items():
print(f"{key}: {value}")range() 函数
python
# 基本用法
for i in range(5):
print(i) # 0, 1, 2, 3, 4
# 指定起始和结束
for i in range(2, 8):
print(i) # 2, 3, 4, 5, 6, 7
# 指定步长
for i in range(0, 10, 2):
print(i) # 0, 2, 4, 6, 8
# 反向循环
for i in range(10, 0, -1):
print(i) # 10, 9, 8, 7, 6, 5, 4, 3, 2, 1enumerate() 函数
python
# 获取索引和值
fruits = ["苹果", "香蕉", "橙子"]
for index, fruit in enumerate(fruits):
print(f"{index}: {fruit}")
# 指定起始索引
for index, fruit in enumerate(fruits, 1):
print(f"第{index}个水果: {fruit}")while 循环
python
# 基本 while 循环
count = 0
while count < 5:
print(f"计数: {count}")
count += 1
# 用户输入循环
while True:
user_input = input("请输入一个数字(输入 'quit' 退出): ")
if user_input == 'quit':
break
try:
number = int(user_input)
print(f"你输入的数字是: {number}")
except ValueError:
print("请输入有效的数字")
# 条件循环
password = ""
while password != "123456":
password = input("请输入密码: ")
if password != "123456":
print("密码错误,请重试")
print("密码正确,欢迎!")🚪 循环控制语句
break 语句
python
# 在循环中提前退出
for i in range(10):
if i == 5:
break
print(i) # 0, 1, 2, 3, 4
# 在 while 循环中使用
count = 0
while True:
count += 1
if count > 5:
break
print(f"计数: {count}")continue 语句
python
# 跳过当前迭代
for i in range(10):
if i % 2 == 0:
continue # 跳过偶数
print(i) # 1, 3, 5, 7, 9
# 在 while 循环中使用
count = 0
while count < 10:
count += 1
if count % 3 == 0:
continue # 跳过3的倍数
print(f"计数: {count}")else 子句
python
# for 循环的 else
for i in range(5):
print(i)
else:
print("循环正常结束")
# while 循环的 else
count = 0
while count < 3:
print(f"计数: {count}")
count += 1
else:
print("while 循环正常结束")
# break 时不会执行 else
for i in range(5):
if i == 3:
break
print(i)
else:
print("这行不会执行")🎯 嵌套循环
python
# 嵌套 for 循环
for i in range(3):
for j in range(3):
print(f"({i}, {j})")
# 打印乘法表
for i in range(1, 10):
for j in range(1, i + 1):
print(f"{j} × {i} = {i * j}", end="\t")
print() # 换行
# 查找二维列表中的元素
matrix = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
target = 5
found = False
for i in range(len(matrix)):
for j in range(len(matrix[i])):
if matrix[i][j] == target:
print(f"找到目标 {target} 在位置 ({i}, {j})")
found = True
break
if found:
break📊 列表推导式
基本列表推导式
python
# 基本语法
squares = [x**2 for x in range(10)]
print(f"平方数: {squares}")
# 带条件的列表推导式
even_squares = [x**2 for x in range(10) if x % 2 == 0]
print(f"偶数的平方: {even_squares}")
# 字符串处理
words = ["hello", "world", "python"]
upper_words = [word.upper() for word in words]
print(f"大写单词: {upper_words}")嵌套列表推导式
python
# 创建二维列表
matrix = [[i + j for j in range(3)] for i in range(3)]
print(f"矩阵: {matrix}")
# 展平二维列表
flattened = [item for row in matrix for item in row]
print(f"展平后: {flattened}")🎲 实践练习
练习1:成绩等级判断
编写一个程序,根据分数判断等级:
- 90分以上:优秀
- 80-89分:良好
- 70-79分:中等
- 60-69分:及格
- 60分以下:不及格
练习2:猜数字游戏
编写一个猜数字游戏:
- 程序随机生成一个1-100的数字
- 用户有7次机会猜测
- 每次猜测后给出提示(太大/太小)
- 猜中或次数用完时结束游戏
练习3:打印图案
使用循环打印以下图案:
*
**
***
****
*****练习4:质数判断
编写一个函数判断一个数是否为质数,然后找出1-100之间的所有质数。
🔧 高级技巧
使用 zip() 函数
python
# 同时遍历多个列表
names = ["张三", "李四", "王五"]
ages = [20, 25, 30]
grades = ["A", "B", "A"]
for name, age, grade in zip(names, ages, grades):
print(f"{name}: {age}岁, 等级{grade}")使用 itertools 模块
python
import itertools
# 无限循环
counter = itertools.count(1)
for i in range(5):
print(next(counter)) # 1, 2, 3, 4, 5
# 循环迭代
colors = ["红", "绿", "蓝"]
cycle_colors = itertools.cycle(colors)
for i in range(7):
print(next(cycle_colors)) # 红, 绿, 蓝, 红, 绿, 蓝, 红📈 性能优化建议
💡 优化技巧
- 使用列表推导式:比普通循环更高效
- 避免不必要的嵌套:减少循环层数
- 使用生成器:对于大数据集,使用生成器表达式
- 提前退出:使用 break 和 continue 减少不必要的计算
python
# 低效的写法
result = []
for i in range(1000):
if i % 2 == 0:
result.append(i**2)
# 高效的写法
result = [i**2 for i in range(1000) if i % 2 == 0]下一步
现在你已经掌握了 Python 的控制流程,接下来学习:
💡 学习建议:多练习循环和条件语句的组合使用,这是编程的基础
