You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python如何用for/while循环替代多IF语句实现油价动态调整

问题描述
  • 业务规则:以价格X采购汽油,常规30天内售罄,销售周期内需根据全州平均汽油价格动态调整本站售价:当全州平均油价较采购价上涨1.2%时,将本站售价设置为采购价上浮1%的档位,后续档位按相同规则依次递增,最高需覆盖20%涨幅场景。
  • 现存痛点:当前手写的Python实现冗余度极高,若要覆盖20%涨幅,需要手动定义20组价格变量、编写20组独立if判断语句,代码臃肿难维护,需要通过循环逻辑替换重复的多分支判断,实现更简洁的代码结构。
现有冗余代码
my_price1 = last_gas_price["price"]*1.01 
my_price2 = last_gas_price["price"]*1.02 
my_price3 = last_gas_price["price"]*1.03 
my_price4 = last_gas_price["price"]*1.04  
my_price5 = last_gas_price["price"]*1.05 

if last_gas_price > my_price1:
    adj_price(price = my_price1)

if last_gas_price > my_price2:
    adj_price(price = my_price2)

if last_gas_price > my_price3:
    adj_price(price = my_price3)

if last_gas_price > my_price4:
    adj_price(price = my_price4)

if last_gas_price > my_price5:
    adj_price(price = my_price5)

注:原代码存在变量命名歧义,下述优化逻辑中统一用purchase_price指代采购价,state_avg_price指代实时全州平均油价

优化方案

循环实现(逻辑完全对齐原有写法)

核心思路是不需要提前手动定义所有档位的价格变量,直接在循环中逐档计算触发阈值和对应售价,从低到高判断后自动匹配最高符合条件的档位,支持任意配置最高涨幅,不需要修改核心判断逻辑:

# 可根据业务需求自由调整配置参数
purchase_price = last_gas_price["price"]
max_markup_level = 20  # 最高覆盖20%涨幅档位
station_price_step = 0.01  # 本站售价每档较采购价上浮1%
state_trigger_step = 0.012  # 全州均价每上涨1.2%触发一次升档

final_price = purchase_price
# 逐档遍历判断
for level in range(1, max_markup_level + 1):
    trigger_threshold = purchase_price * (1 + level * state_trigger_step)
    level_station_price = purchase_price * (1 + level * station_price_step)
    if state_avg_price >= trigger_threshold:
        final_price = level_station_price

# 最终执行一次价格调整即可,避免原代码中重复调用函数的问题
adj_price(price=final_price)

如果需要完全复刻原代码逐档触发adj_price的逻辑,只需将函数调用移至循环内的判断分支中即可,不会改变原有执行结果。

无循环直接计算实现(性能最优)

由于档位是固定步长线性递增,不需要逐档遍历,直接通过涨幅计算命中档位即可,代码更简洁:

purchase_price = last_gas_price["price"]
max_level = 20
rise_rate = (state_avg_price - purchase_price) / purchase_price
hit_level = min(int(rise_rate // 0.012), max_level)
adj_price(price=purchase_price * (1 + hit_level * 0.01))

内容的提问来源于stack exchange,提问作者Alex

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 22:48:18