Python实现股票批量下单:拆分超限额订单问题求助
股票订单拆分解决方案
你的原有代码存在两个问题:一是仅会输出600、1200、1800,漏掉最后剩余的100;二是当需求数量小于等于限额时,循环不会执行,无法生成订单。以下是两种可行的解决方式:
方法一:整除+取余计算
通过数学运算直接拆分完整订单和剩余订单,逻辑清晰直观:
max_qty = 600 req_qty = 1900 # 计算完整限额订单的数量 full_order_count = req_qty // max_qty # 计算剩余未拆分的数量 remaining_qty = req_qty % max_qty # 生成所有完整订单 for _ in range(full_order_count): print(max_qty) # 这里可以替换为实际下单逻辑 # 若有剩余数量,生成最后一笔订单 if remaining_qty > 0: print(remaining_qty) # 替换为实际下单逻辑
方法二:循环递减处理
通过循环逐步扣减需求数量,每次取限额和剩余数量的较小值作为当前订单量,能覆盖所有边界场景(如需求数量为0、需求数量小于限额等):
max_qty = 600 req_qty = 1900 current_remaining = req_qty while current_remaining > 0: # 每次取限额和剩余量的较小值,避免超过限额 order_qty = min(max_qty, current_remaining) print(order_qty) # 替换为实际下单逻辑 current_remaining -= order_qty
内容的提问来源于stack exchange,提问作者Thomas Amal
相关产品推荐
相关产品推荐

