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

Python计算鞋子含税价时fprice数值不变未乘VAT问题咨询

错误原因
  • 核心问题:给各国VAT系数赋值时错误使用了int()强制转换,浮点数转int会直接截断小数部分,1.19、1.20这类系数转int后都会变成1,最终价格自然和原价完全一致。
  • 逻辑错误:国家合法性判断的条件写法错误,你写的country != "Germany" or "Portugal" or "Italy" or "Spain"or "France"中,单独的字符串本身作为布尔值是True,所以这个条件永远成立,不管输入什么国家都会提示无效输入。
  • 冗余/不严谨问题:鞋价输入转int,无法处理带小数的欧元价格;代码末尾的float(shoep)、float(VAT)没有赋值给变量,属于无效代码。
修正后代码
while True:
    VAT = 1.0
   
    # 鞋价输入改为转float支持小数价格
    shoep = float(input("请输入鞋子的价格(单位:欧元)"))
    country = input("请输入你购买鞋子的国家:")
    
    # 提前做国家合法性判断,用in判断更简洁准确
    valid_countries = ["德国", "法国", "西班牙", "意大利", "葡萄牙"]
    if country not in valid_countries:
        print("输入无效,请重试")
        # 无效输入直接跳过后续计算,重新进入循环
        continue

    # 去掉int强制转换,直接赋值浮点型VAT系数
    if country == "德国":
        VAT = 1.19
    elif country =="法国":
        VAT = 1.20
    elif country == "西班牙":
        VAT = 1.21
    elif country == "意大利":
        VAT = 1.22
    elif country == "葡萄牙":
        VAT = 1.23

    fprice = shoep * VAT
    # 输出保留两位小数,符合货币显示习惯
    print("鞋子的最终价格为 €", round(fprice, 2))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 10:36:03