2.4流程控制:条件与循环

105 阅读3分钟

流程控制:条件与循环

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 = 12for 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 需求分析

  1. 验证用户年龄(18岁以上允许进入)
  2. 限制尝试次数(最多3次输入)
  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函数的定义与使用,并构建一个支持多种运算的智能计算模块。