四、条件与循环语句解析

Python 的流程控制语句是编程的核心基础,通过条件判断和循环结构可以实现复杂的业务逻辑。本文将系统介绍 Python 中的条件语句、循环语句及控制关键字,帮助您构建坚实的编程基础。

文章目录

  • 一、条件语句: if、elif、else)

    • 1、基本语法结构
    • 2、多条件判断示例
    • 3、嵌套条件语句
    • 4、条件表达式三目运算符
  • 二、循环语句: while 和 while...else

    • 1、while 循环基础
    • 2、while..else 结构
    • 3、无限循环与中断
  • 三、循环语句: for 和 for...else

    • 1、for 循环遍历序列
    • 2、遍历索引与值
    • 3、for...else 结构
    • 4、遍历字典
  • 四、循环控制关键字:break 和 continue

    • 1、break 语句
    • 2、continue 语句
    • 3、嵌套循环中的控制
  • 五、pass语句:占位符与空操作

    • 1、基本用法
    • 2、实际应用场景
  • 六、综合示例猜数字游戏

  • 七、最佳实践与注意事项

  • 总结



一、条件语句(if、elif、else)

1、单分支

语法:

iif 表达式:
    语句

示例:


if balance < price:

    print("余额不足,请充值")

print("欢迎下次光临")

2、双分支

语法:


if 表达式:
    语句1
else:
    语句2

示例:


from random import randint

# 余额
balance = randint(0, 100)

# 价格
price = 50

# 打印余额
print(f"余额:{balance}")

# 比较余额和价格
if balance < price:
    # 如果余额小于价格
    print("余额不足,请充值")

else:
    # 如果余额大于价格
    balance = balance - price
    print(f"消费成功,余额:{balance}")

print("欢迎下次光临")

3、多分支

语法:


if 表达式1:
    语句1

elif 表达式2:
    语句2

elif 表达式3:
    语句3

else: 
    语句4

示例:


from random import randint

# 定义年龄并打印
print("此人年龄为", age := randint(0, 100))

if age < 2:
    # 如果年龄<2
    print("这是个婴儿")

elif age < 4:
    # 如果2<=年龄<4
    print("这是个幼儿")

elif age < 13:
    # 如果4<=年龄<13
    print("这是个儿童")

elif age < 20:
    # 如果13<=年龄<20
    print("这是个青少年")

elif age < 65:
    # 如果20<=年龄<65
    print("这是个成年人")

else:
    # 如果65<=年龄
    print("这是个老人")

4、嵌套分支

语法:


if 表达式1:

    if 表达式2:
        语句1

    else:
        语句2

else:

    if 表达式3:
        语句3

    else:
        语句4

示例:


state = 0b011
# 判断是否为大写状态
if state & 0b100 == 0b100:
    # 是大写状态
    print("大写状态")

else:
    # 不是大写状态
    # 判断是否为“简体中文-微软拼音”
    if state & 0b010 == 0b010:
    
        # 是“简体中文-微软拼音”
        # 判断是否为“微软拼音-中文”
        if state & 0b001 == 0b001:
            # 是“微软拼音-中文”
            print("微软拼音-中文")

        else:
            # 不是“微软拼音-中文”
            print("微软拼音-英文")

    else:
        # 不是“简体中文-微软拼音”
        print("英语-美式键盘")

5、match case 语句

语法:

match x:
    case a:
        语句1
    case b:
        语句2
    case _:
        语句3

示例:

match month := 3:

    case 1 | 3 | 5 | 7 | 8 | 10 | 12:
        print(f"{month}月有31天")

    case 4 | 6 | 9 | 11:
        print(f"{month}月有30天")

    case 2:
        print(f"{month}月可能有28天")

    case _:
        print(f"{month}月有?天")

6、三目运算符

语法:

表达式1 if 判断条件 else 表达式2

示例:

age = 20
status = "成年人" if age >= 18 else "未成年人"
print(status)  # 输出:成年人



二、循环语句:while 和 while...else

1、while 循环基础

语法:

while 表达式:
    语句-循环体

示例:

count = 1
while count <= 5:
    print(f"当前计数: {count}")
    count += 1

2、while...else 结构

语法:

while 后可以加上 else,当 while 表达式结果为 False 时会执行 else 中的语句

示例:

rabbit = 2

week = 1

while week < 10:
    rabbit = rabbit + rabbit * 2
    week += 1

else:

print(f"第{week}周有{rabbit}只兔子")

3、无限循环与中断

while True:
    command = input("请输入命令(输入exit退出):")
    if command == "exit":
        break
    elif command == "help":
        print("可用命令:exit, help")
    else:
        print(f"执行命令: {command}")



三、循环语句:for 和 for...else

1、for 循环遍历序列

语法:

for 临时变量 in 可迭代对象:
    语句

示例:

fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
    print(f"水果: {fruit}")

2、遍历索引与值

names = ["Alice", "Bob", "Charlie"]
for index, name in enumerate(names, start=1):
    print(f"{index}: {name}")

3、for...else 结构

numbers = [2, 4, 6, 8]
for num in numbers:
    if num % 2 != 0:
        print("发现奇数,终止循环")
        break
else:
    # 循环正常结束(未通过break退出)时执行
    print("所有数字都是偶数")

4、遍历字典

person = {"name": "Alice", "age": 25, "city": "New York"}
for key, value in person.items():
    print(f"{key}: {value}")

5、range()

语法:

作用:函数可以生成数列,它返回一个可迭代对象。

语法:range([start,] stop[, step])

start: 生成序列的起始值--包含  默认0

stop:生成序列的结束值--不包含

step:生成序列的步长 默认为 1

示例:

# 指定生成数列的范围,从start到stop(不包含stop),可设定步长,默认步长为1
for i in range(10):
    print(i)



四、循环控制关键字:break 和 continue

1、break 语句

  • 用于终止整个循环
  • 常用于条件满足时提前退出循环
for num in range(1, 11):
    if num == 7:
        print("遇到7,终止循环")
        break
    print(num)

2、continue 语句

  • 用于跳过当前迭代,继续下一次循环
  • 常用于过滤特定条件
for num in range(1, 11):
    if num % 2 == 0:
        continue  # 跳过偶数
    print(num)  # 只打印奇数

3、嵌套循环中的控制

matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
for row in matrix:
    for num in row:
        if num == 5:
            break  # 仅跳出内层循环
        print(num)
    print("行结束")  # 仍然会执行



五、pass 语句:占位符与空操作

语法:

示例:

实际应用场景:

# 临时禁用代码块
for num in range(10):
    # TODO: 后续实现
    pass

# 占位符示例
try:
    risky_operation()
except:
    pass  # 暂时忽略异常(谨慎使用)



六、综合示例:猜数字游戏

import random
secret_number = random.randint(1, 100)
attempts = 0
max_attempts = 7

print("猜数字游戏:猜一个1-100之间的数字,你有7次机会")

for attempt in range(1, max_attempts + 1):
    try:
        guess = int(input(f"\n尝试次数 {attempt}/{max_attempts},请输入你的猜测:"))
        
        if guess == secret_number:
            print(f"恭喜!你在第 {attempt} 次猜中了数字 {secret_number}!")
            break
        elif guess < secret_number:
            print("太小了!")
        else:
            print("太大了!")
        
        if attempt == max_attempts:
            print(f"\n游戏结束!正确数字是 {secret_number}")
            
    except ValueError:
        print("请输入有效的数字!")
        continue  # 跳过剩余代码,继续下一次循环



七、最佳实践与注意事项

  • 1、缩进规则:Python严格依赖缩进,保持一致的缩进风格(建议4空格)
  • 2、避免过度嵌套:超过3层的条件/循环嵌套应考虑重构
  • 3、循环优化
    • 在for循环中优先使用内置函数(如 enumerate()zip()
    • 避免在循环中修改被遍历的列表(推荐创建新列表)
  • 4、else的合理使用
    • for...else 在需要检测“是否完成遍历”时非常有用
    • while...else 常用于输入验证场景
  • 5、谨慎使用pass
    • 仅在开发初期作为占位符
    • 避免在异常处理中滥用pass(可能隐藏错误)



总结

  • 1、条件语句:使用if-elif-else结构实现多分支逻辑
  • 2、循环语句
    • while 适用于次数不确定的循环
    • for 适用于遍历序列或集合
    • ...else 结构可处理循环正常完成的情况
  • 3、控制关键字
    • break 终止整个循环
    • continue 跳过当前迭代
    • pass 作为占位符实现语法要求
posted @ 2026-08-05 20:34  jock_javaEE  阅读(2)  评论(0)    收藏  举报