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

如何让Python税费计算代码正常运行且函数内保留数值并承担主要逻辑?

修正后的税费计算代码及说明

原代码存在几个核心问题:

  • 输入的choice是字符串(比如'a'或'b'),直接和数值相乘会触发类型错误,而且函数里定义的a、b变量根本没用到
  • 函数用print输出结果,没有返回值,导致后面format的时候拿到的是None,输出会出错
  • 没有把价格数据的逻辑完全封装在函数里

下面是修正后的代码,满足「函数承担主要计算工作、价格保留在函数内部」的要求:

def tax(choice):
    # 商品价格完全保留在函数内部,外部无需知晓具体数值
    item_prices = {
        'a': 1.4,
        'b': 2.2
    }
    # 把输入转为小写,兼容大小写输入
    selected_price = item_prices.get(choice.lower())
    # 处理无效输入的情况
    if selected_price is None:
        return "无效选择,请输入a或b"
    # 计算含税总价(税率12%),保留两位小数符合货币格式
    total_cost = selected_price * 1.12
    return round(total_cost, 2)

print("What will you buy?")
print("[a] Salt - $1.40")
print("[b] Pepper - $2.20")
choice = input("请输入你的选择(a/b):")

result = tax(choice)
# 判断结果类型,分别处理有效和无效输入的输出
if isinstance(result, float):
    print(f"It will cost ${result:.2f}")
else:
    print(result)

关键修正说明

  • 用字典item_prices存储商品价格,完全封装在函数内部,外部只需要传入选择项即可
  • 函数负责价格匹配、税费计算、异常输入处理,核心逻辑都在函数里完成,外部只做输入和输出
  • 函数返回计算结果(或错误提示),而不是直接打印,职责划分更清晰
  • 增加了大小写兼容和无效输入处理,代码更健壮

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 03:25:15