Python菜谱程序问题:选择Pizza时无法打印对应菜谱
问题分析与修复
核心错误
你的代码里第二个if Choice==recipes[1]嵌套在第一个if块内部,这意味着只有当用户选择了Smash Burgers(索引0)时,才会去判断是否等于Pizza(索引1),逻辑完全矛盾,所以永远触发不了Pizza的菜谱打印。
另外还有两处小问题:
input(recipes)会把列表直接转成字符串当提示,体验糟糕,应该替换成友好的提示文字。- 最后
else分支里的print=input(...)是语法错误,不能将input赋值给print。
修正后的代码
print("What would you like to make?") recipes = ["Smash Burgers", "Pizza", "Fried Chicken"] for recipe in recipes: print(recipe) # 替换input参数为友好提示 choice = input("\n请输入你想制作的菜品名称:") # 将两个if改为平级的条件判断 if choice == recipes[0]: print("\n--- Smash Burgers 菜谱 ---") print("Potato Buns Ingredients:") print("415 g 高筋面粉, 45 g 土豆粉, 1汤匙 速溶酵母, 1汤匙 粗盐, 2汤匙 糖, 170 g 温水(75-80°F), 110 g 全脂牛奶(75-80°F), 2个常温鸡蛋, 4汤匙 常温无盐黄油(切块)") print("\nEgg Wash Ingredients:") print("1个鸡蛋, 1个蛋黄, 少许盐") print("\nSmash Burgers Ingredients:") print("16盎司 绞碎牛肩肉, 8盎司 绞碎牛胸肉, 8盎司 绞碎牛小排, 适量中性油, 适量粗盐, 适量现磨黑胡椒, 美式芝士, 烤过的土豆面包, 奶油生菜, 切片牛排番茄, 薄切白洋葱, 切片甜酸黄瓜") print("\nSpecial Sauce Ingredients:") print("½杯蛋黄酱, ½杯番茄酱, ⅓杯芥末酱, ¼个擦碎的洋葱, 1瓣擦碎的大蒜, ½茶匙甜椒粉, 1汤匙腌黄瓜酱") elif choice == recipes[1]: print("\n--- Pizza 菜谱 ---") print("FOR THE DOUGH:") print("270g/1又1/8杯 温水(86°F/30°C), 30g/2汤匙 橄榄油, 5g/1又3/4茶匙 速溶酵母, 35g/8又1/3茶匙 糖, 430g/3又1/2杯 中筋面粉(蛋白质含量11.7%左右), 12g/2又1/8茶匙 盐") print("\nPIZZA SAUCE:") print("150g/2/3杯 番茄酱, 150g/2/3杯 水, 1g/1/8茶匙 盐, 10g/2又1/3茶匙 糖, 10g/2又1/4茶匙 橄榄油, 1/4茶匙 干罗勒, 1/4茶匙 干牛至, 1g/1/2茶匙 黑胡椒, 1g/1/3茶匙 大蒜粉, 1g/1/2茶匙 洋葱粉") print("\nTO BUILD AND BAKE THE PIZZA:") print("200g/2杯 全脂陈年马苏里拉芝士(擦碎), 90g/不到1杯 陈年普罗卧干酪(擦碎), 细磨玉米粉(撒粉用), 面粉(撒粉用), 少许盐") elif choice == recipes[2]: # 可在此补充Fried Chicken的菜谱内容 print("\n--- Fried Chicken 菜谱 ---") print("请添加对应菜谱内容") else: print("请选择有效的菜品。或者你想自定义菜谱吗?")
额外优化建议
把菜谱内容单独存成字典,代码会更清晰易维护:
recipe_details = { "Smash Burgers": "这里放完整菜谱文本", "Pizza": "这里放完整菜谱文本", "Fried Chicken": "这里放完整菜谱文本" } # 判断时直接调用:print(recipe_details[choice])
内容的提问来源于stack exchange,提问作者SneakyPeanut
相关产品推荐
相关产品推荐

