Python类模式匹配时触发SyntaxError无效语法错误如何解决?
问题原因
match...case 结构化模式匹配语法是 Python 3.10 及以上版本才支持的新特性,低于该版本的Python解释器无法识别match关键字,会直接抛出语法错误,这是你报错的根本原因。
你可以在终端执行 python --version 命令查看当前使用的Python版本,确认是否低于3.10。
修复方案
方案1:升级Python版本
直接将你的运行环境Python版本升级到3.10及以上,原代码无需任何修改即可正常运行,返回符合要求的亚洲城市列表。
方案2:兼容低版本Python的写法
如果暂时无法升级环境,用普通的if条件判断替换match语法即可,修改后的函数代码如下:
def match_asian_cities(): results = [] for city in cities: if city.continent == 'Asia': results.append(city) return results
还可以用更简洁的列表推导式实现相同逻辑:
def match_asian_cities(): return [city for city in cities if city.continent == 'Asia']
内容的提问来源于stack exchange,提问作者Faisal Nazik
相关产品推荐
相关产品推荐

