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

连续购买程序异常:钱包余额耗尽后仍持续涨价需修复

连续购买程序余额耗尽后仍持续涨价的问题排查与修复

问题概述

开发的连续购买程序需求为:每次完成购买操作后商品价格上涨100,直至客户钱包余额耗尽时程序终止。但当前程序存在异常:当钱包余额耗尽后,程序仍会持续多次提升价格,直到价格超过1000才停止。

问题根源分析

  1. 循环条件错误:原代码使用price <= 1000作为循环终止条件,而非判断钱包余额是否能覆盖当前价格。这导致余额耗尽后,只要价格未超过1000,循环就会继续执行并持续涨价。
  2. 涨价时机不符合需求:无论用户是否完成购买,每次循环都会执行price += 100,违背了“仅在完成购买操作后涨价”的要求。
  3. 终止逻辑滞后:只有当价格超过1000时才触发终止提示,没有在余额不足时立即终止程序。

修复后的代码

wallet = int(input("wallet = "))
price = 100
print("price = " + str(price))

while wallet >= price:
    ask = input('would you like to purchase again? (y/n)')
    if ask.upper() == "Y":
        wallet -= price
        print(f"you now have {wallet} left")
        price += 100
        print(f'new price = {price}')
    elif ask.upper() == "N":
        print("transaction cancelled")
        break
    else:
        print("invalid reply")
        # 输入无效时不涨价,重新发起询问
        continue

print("you do not have enough money to purchase more")

修复说明

  • 调整循环条件:将while price <= 1000改为while wallet >= price,确保只要余额不足以购买当前价格,循环立即终止。
  • 修正涨价时机:仅在用户确认购买(输入Y)后执行price +=100,严格遵循“完成购买后涨价”的需求。
  • 优化用户交互逻辑:用户输入N时直接终止循环;输入无效时不涨价,重新发起询问。
  • 简化变量操作:直接使用wallet -= price替代多余的left变量赋值,让代码更简洁。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 10:35:17