流程控制:条件与循环
1. 条件分支结构
1.1 基础条件判断
# 单条件判断
age = 18
if age >= 18:
print("已成年,可以进入")
# 双分支结构
score = 55
if score >= 60:
print("考试合格")
else:
print("需要补考")
1.2 多条件分支
成绩评级系统:
grade = 82
if grade >= 90:
print("A级")
elif grade >= 80:
print("B级") # 实际输出B级
elif grade >= 70:
print("C级")
else:
print("D级")
多条件联合判断:
temperature = 28
humidity = 65
if temperature > 30 and humidity > 70:
print("高温高湿警告!")
elif temperature < 10 or humidity < 30:
print("低温干燥注意")
else:
print("环境条件正常")
2. 循环结构详解
2.1 for循环遍历
遍历列表元素:
fruits = ["苹果", "香蕉", "橙子"]
for fruit in fruits:
print(f"当前水果:{fruit}")
# 输出:
# 当前水果:苹果
# 当前水果:香蕉
# 当前水果:橙子
遍历字符串字符:
for char in "Python":
print(char.upper(), end=" ") # P Y T H O N
range生成数值序列:
# 生成0-4的整数
for i in range(5):
print(i, end=" ") # 0 1 2 3 4
# 指定步长
for i in range(10, 0, -2):
print(i, end=" ") # 10 8 6 4 2
2.2 while循环控制
基础计数器:
count = 0
while count < 3:
print(f"这是第{count+1}次循环")
count += 1
无限循环处理:
while True:
user_input = input("输入exit退出:")
if user_input.lower() == "exit":
break
print(f"收到指令:{user_input}")
3. 循环控制语句
3.1 break与continue
break示例(数字搜索) :
numbers = [3, 7, 12, 9, 5]
target = 12
for num in numbers:
if num == target:
print("找到目标数字!")
break
print(f"当前检查数字:{num}")
else:
print("未找到目标数字")
continue示例(跳过奇数) :
for i in range(10):
if i % 2 != 0:
continue
print(f"偶数:{i}") # 输出0,2,4,6,8
3.2 循环嵌套示例
乘法表生成:
for i in range(1, 10):
for j in range(1, i+1):
print(f"{j}x{i}={i*j}", end="\t")
print() # 换行
4. 最佳实践与常见错误
4.1 条件判断优化
避免深层嵌套:
# 原始写法(3层嵌套)
if condition1:
if condition2:
if condition3:
do_something()
# 优化写法(卫语句)
if not condition1:
return
if not condition2:
return
do_something()
浮点数比较陷阱:
# 错误方式
a = 0.1 + 0.2
b = 0.3
print(a == b) # False
# 正确方式
tolerance = 1e-9
print(abs(a - b) < tolerance) # True
4.2 循环性能优化
预先处理可迭代对象:
# 低效写法(每次循环计算长度)
data = [1,2,3,4,5]
for i in range(len(data)):
print(data[i])
# 高效写法
for item in data:
print(item)
列表推导式应用:
# 传统循环
squares = []
for x in range(10):
squares.append(x**2)
# 简化写法
squares = [x**2 for x in range(10)]
5. 实战案例:智能门禁系统
5.1 需求分析
- 验证用户年龄(18岁以上允许进入)
- 限制尝试次数(最多3次输入)
- 支持管理员密码直通(密码:8888)
5.2 完整实现
max_attempts = 3
admin_password = "8888"
for attempt in range(max_attempts):
user_input = input("请输入年龄或管理员密码:")
if user_input == admin_password:
print("管理员权限已激活")
break
try:
age = int(user_input)
if age >= 18:
print("验证通过,欢迎进入")
break
else:
print("未达年龄要求")
except ValueError:
print("输入格式错误")
remaining = max_attempts - attempt - 1
print(f"剩余尝试次数:{remaining}")
else:
print("尝试次数耗尽,系统锁定")
6. 调试技巧与工具
6.1 使用pdb调试器
import pdb
def complex_calculation(x):
pdb.set_trace() # 设置断点
result = x ** 2 + 5 * x - 3
return result
print(complex_calculation(4))
6.2 循环可视化工具
是
是
否
是
否
否
开始循环
条件满足?
执行循环体
遇到continue?
遇到break?
结束循环
下节预告:在接下来的文章中,我们将深入探讨Python函数的定义与使用,并构建一个支持多种运算的智能计算模块。