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

为何Python中input赋值与直接赋值的match语句结果不同?

问题原因解析

场景一和场景二输出不同的核心原因是变量类型不匹配:

  • 场景一中,input()函数的返回值永远是字符串类型,当你输入201时,http_status实际是字符串 "201"。而match语句里匹配的是整数200或201,字符串和整数属于不同类型,无法匹配成功,因此会执行case _分支,输出203。
  • 场景二中,http_status被直接赋值为整数201,和match语句里的整数匹配条件完全吻合,因此执行对应分支输出200。

修正方案

只需要把场景一中的input()返回值转换为整数即可:

http_status = int(input("Please enter http status code: "))
print(http_status)
match http_status:
    case 200 | 201:
        print("200")
    case _:
        print("203")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 19:17:01