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

为什么我的Python代码运行结果错误且重复执行结果不一致?

问题排查与解决方案

问题原因

  • 输入值与判断值不匹配:用户输入的是中文“是”,但代码中判断的是英文"Yes",导致Pepperoni和extra_cheese的加价条件无法触发。
  • Pepperoni判断逻辑混乱:嵌套的if语句逻辑完全错误,原代码中:
    if Pepperoni == "Yes" and size == "S":
      if Pepperoni == "Yes" and size == "M" or size == "L":
         bill += 2   
    
    这段代码要求同时满足“小披萨”和“中/大披萨”,这是不可能成立的矛盾条件,因此永远不会执行加价操作,同时小披萨的Pepperoni加价逻辑完全缺失。
  • 变量名大小写不一致:代码中使用Pepperoni(首字母大写),但通常输入变量会用小写pepperoni,可能导致变量未定义或值不匹配。

修正后的代码

补充原代码缺失的输入逻辑,同时修正所有逻辑错误:

# 获取用户输入
size = input("您想要什么尺寸的披萨?S、M还是L?").strip().upper()
pepperoni = input("您想要加意大利辣香肠吗?是或否?").strip()
extra_cheese = input("您想要额外加芝士吗?是或否?").strip()

bill = 0

# 基础披萨价格计算
if size == "S":
    bill += 10
elif size == "M":
    bill += 15
elif size == "L":
    bill += 20

# Pepperoni加价逻辑
if pepperoni == "是":
    if size == "S":
        bill += 1  # 小披萨加Pepperoni加价1
    else:  # M或L尺寸统一加价2
        bill += 2

# 额外芝士加价
if extra_cheese == "是":
    bill += 1

print(f"您的最终账单是${bill}")

测试验证

按照用户提供的输入流程:

欢迎来到Python披萨配送系统!
您想要什么尺寸的披萨?S、M还是L?M
您想要加意大利辣香肠吗?是或否?是
您想要额外加芝士吗?是或否?是

修正后的代码会计算:15(中披萨基础价)+2(Pepperoni加价)+1(额外芝士加价)=18,输出正确结果您的最终账单是$18。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 11:00:42