如何解决使用Python f-string时Pylance报Expected: ")"的错误?
报错原因及解决方法
你写的f-string语法本身是完全正确的,触发Pylance报错的核心原因是当前Pylance使用的Python语法校验版本低于3.6:
f-string是Python 3.6版本才正式引入的语法特性,如果Pylance被配置为按照3.6以下版本的规则校验代码,会无法识别字符串前的f标记,会将f判定为一个待调用的函数名,认为你写的结构是print(f("xxx"))但漏写了f函数调用的右括号,因此抛出Expected: ")"的错误提示。
可按以下顺序排查解决:
- 确认Python解释器版本≥3.6:如果是在VS Code中使用,点击编辑器右下角显示的Python版本号,在弹出的列表中选择3.6及以上版本的本地解释器即可。
- 修改Pylance语法校验配置:如果你的项目存在
pyrightconfig.json配置文件,或编辑器的settings.json中设置了python.analysis.pythonVersion参数,检查该参数值是否低于3.6,修改为你实际使用的3.6+版本号即可。 - 重写代码行排查隐藏字符:如果上述配置都正常,手动重新输入整行打印代码,排除复制粘贴时带入的零宽空格等不可见字符干扰语法解析的可能。
内容的提问来源于stack exchange,提问作者Josepch
相关产品推荐
相关产品推荐

