为什么我的Python代码运行结果错误且重复执行结果不一致?
问题排查与解决方案
问题原因
- 输入值与判断值不匹配:用户输入的是中文“是”,但代码中判断的是英文
"Yes",导致Pepperoni和extra_cheese的加价条件无法触发。 - Pepperoni判断逻辑混乱:嵌套的
if语句逻辑完全错误,原代码中:
这段代码要求同时满足“小披萨”和“中/大披萨”,这是不可能成立的矛盾条件,因此永远不会执行加价操作,同时小披萨的Pepperoni加价逻辑完全缺失。if Pepperoni == "Yes" and size == "S": if Pepperoni == "Yes" and size == "M" or size == "L": bill += 2 - 变量名大小写不一致:代码中使用
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
相关产品推荐
相关产品推荐

