为何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
相关产品推荐
相关产品推荐

