CS50 Python第二章match语句执行报错,请求排查原因
问题分析与解决
核心错误点
Python版本不兼容
match是Python 3.10及以上版本才正式引入的结构化模式匹配语法,若你的CS50 IDE或Google Colab环境使用的Python版本低于3.10,就会触发SyntaxError。可以在环境中运行python3 --version查看当前版本,若版本过低,需切换到支持Python 3.10+的运行环境。代码语法错误
你代码的最后一个分支写成了case_:,这是语法错误。正确的默认分支写法是case _:——case和通配符下划线_之间必须有空格,下划线用于匹配任意未被前面case覆盖的值。额外拼写修正(不影响运行但需注意)
代码里的Griffyindor是拼写错误,正确的霍格沃茨学院名称是Gryffindor。
修正后的完整代码
name = input("What's your name? ") match name: case "Harry": print("Gryffindor") case "Hermoine": print("Gryffindor") case "Ron": print("Gryffindor") case "Malfoy": print("Slytherin") case _: print("Who?")
内容的提问来源于stack exchange,提问作者Priya Bhattacharjee
相关产品推荐
相关产品推荐

