Python多if语句代码问题求助:披萨价格计算代码失效
问题分析与修复
你的代码核心问题是输出语句的位置逻辑错误,导致部分场景下没有输出结果:
- 当
add_pepperoni="Y"且extra_cheese="Y"时,执行完两次加价后没有对应的print语句,完全不会输出价格 - 当
add_pepperoni="N"时,打印内容没有格式美化,不符合预期的输出样式
修正后的代码
add_pepperoni ="Y" extra_cheese="Y" pizza_price =15 if add_pepperoni =="Y": pizza_price +=2 if extra_cheese =="Y": # 加芝士是独立选项,无需嵌套在辣香肠的判断里 pizza_price +=1 # 统一在最后打印,确保所有场景都能输出结果 print(f"final price is {pizza_price}")
逻辑说明
- 将两个条件改为平级独立判断:加意大利辣香肠和加额外芝士是两个独立的付费选项,不需要嵌套关联
- 把
print移到所有判断之外:无论用户选择哪种组合,最终都会输出计算后的价格,避免分支遗漏 - 格式化字符串添加空格:让输出更符合阅读习惯(比如
final price is 18而非final price is18)
测试不同场景:
- 仅加辣香肠:输出
final price is 17 - 两者都加:输出
final price is 18 - 都不加:输出
final price is 15
内容的提问来源于stack exchange,提问作者DulanMahesh
相关产品推荐
相关产品推荐

