在 Python 中,可以根据不同的 if 条件执行不同的 for range 循环

在 Python 中,可以根据不同的 if 条件执行不同的 for range 循环,以下是几种实现方式及示例:

方法 1:直接嵌套 if 和 for

根据条件选择不同的 range 范围:

condition = "high"  # 可改为 "low" 或 "mid"

if condition == "low":
    for i in range(3):  # 低范围: 0, 1, 2
        print(f"Low range iteration: {i}")
elif condition == "mid":
    for i in range(5):  # 中范围: 0, 1, 2, 3, 4
        print(f"Mid range iteration: {i}")
elif condition == "high":
    for i in range(10):  # 高范围: 0到9
        print(f"High range iteration: {i}")
else:
    print("Invalid condition")

输出(当 condition = "high"):

High range iteration: 0 
High range iteration: 1 
... 
High range iteration: 9

方法 2:动态生成 range 参数

range 的起止步长通过条件动态计算:

condition = "mid"  # 可改为 "low" 或 "high"

# 根据条件设置 range 参数
if condition == "low":
    start, end, step = 0, 3, 1
elif condition == "mid":
    start, end, step = 0, 5, 1
elif condition == "high":
    start, end, step = 0, 10, 2  # 高范围步长为2
else:
    start, end, step = 0, 0, 1    # 默认不执行

for i in range(start, end, step):
    print(f"{condition} range iteration: {i}")

输出(当 condition = "mid"):

High range iteration: 0
High range iteration: 1
...
High range iteration: 9

方法 3:使用字典映射 range 参数

通过字典预定义不同条件的 range 参数,避免重复代码:

condition = "low"  # 可改为 "mid" 或 "high"

# 定义不同条件的 range 参数
range_config = {
    "low": {"start": 0, "end": 3, "step": 1},
    "mid": {"start": 0, "end": 5, "step": 1},
    "high": {"start": 0, "end": 10, "step": 2}
}

# 获取当前条件的配置
config = range_config.get(condition, {"start": 0, "end": 0, "step": 1})

for i in range(config["start"], config["end"], config["step"]):
    print(f"{condition} range iteration: {i}")

输出(当 condition = "low"):

low range iteration: 0 
low range iteration: 1 
low range iteration: 2

方法 4:函数封装不同循环逻辑

将不同条件的 for 循环封装为函数,提升代码复用性:

def run_low_range():
    for i in range(3):
        print(f"Low range: {i}")

def run_mid_range():
    for i in range(5):
        print(f"Mid range: {i}")

def run_high_range():
    for i in range(10):
        print(f"High range: {i}")

# 根据条件调用对应函数
condition = "high"
if condition == "low":
    run_low_range()
elif condition == "mid":
    run_mid_range()
elif condition == "high":
    run_high_range()
else:
    print("Invalid condition")

输出(当 condition = "high"):

High range: 0

High range: 1

...

High range: 9

方法 5:使用闭包或 lambda 动态生成循环

通过闭包或 lambda 动态生成循环逻辑(适用于复杂场景):

condition = "mid"

# 定义不同条件的循环生成器
range_generators = {
    "low": lambda: range(3),
    "mid": lambda: range(5),
    "high": lambda: range(0, 10, 2)
}

# 获取当前条件的循环并执行
generator = range_generators.get(condition, lambda: range(0))
for i in generator():
    print(f"{condition} range iteration: {i}")

输出(当 condition = "mid"):

mid range iteration: 0

mid range iteration: 1

...

mid range iteration: 4

应用场景对比

场景推荐方法优势
简单条件分支方法1(直接嵌套)代码直观,易于理解
需要动态计算 range 参数方法2(动态参数)灵活控制起止和步长
多条件且参数固定方法3(字典映射)避免重复代码,便于维护
循环逻辑复杂或需复用方法4(函数封装)模块化设计,适合大型项目
需要动态生成循环逻辑方法5(闭包/lambda)高度灵活,适合高阶编程

总结

  • 简单需求:直接嵌套 if 和 for(方法1)。
  • 参数化需求:动态生成 range 参数(方法2或方法3)。
  • 复杂逻辑:封装为函数或使用闭包(方法4或方法5)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值