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

Python条件判断异常:为何输入任意值均返回固定菜品结果?

问题排查与修复方案

代码存在的核心问题

  • 输入类型不匹配:input()函数返回的是字符串类型,代码中却将其与整数1、2做比较,永远不会匹配,导致无论输入什么都会进入else分支。
  • 无效代码冗余:1 == "meat"、2 == "pasta"、3 == "salad"这三行是无意义的比较语句,既没有赋值操作,也没有参与逻辑判断,完全多余。
  • 变量命名不直观:d、e、f这类命名无法体现对应菜品的含义,不利于代码维护。

修复后的代码

order = input("What do you want to order?")
# 用字典建立输入值与菜品的映射关系,让对应逻辑更清晰
menu = {
    "1": "T-bone steak",
    "2": "fresh salad",
    "3": "Spaghetti with meatballs"
}

# 根据输入匹配菜品,无匹配时提示无效输入
if order in menu:
    print(f"I would like to order a {menu[order]}")
else:
    print("Invalid order, please enter 1, 2 or 3.")

优化说明

  • 用字典替代零散变量,输入与菜品的对应关系更直观,后续新增菜品只需修改字典即可。
  • 新增无效输入提示,避免用户输入错误时返回固定默认值。
  • 采用f-string格式化输出,比字符串拼接更简洁易读。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 22:12:02