PyCharm提示f-string存在未匹配[,嵌套字典引用报错求助
问题分析与解决
你的代码报错是因为引号嵌套冲突:
你用单引号包裹f-string,而访问嵌套字典的第二个键时又用了单引号['cost'],Python会把MENU["espresso"]['后面的单引号当成f-string的结束标记,剩下的cost']}.就成了无效语法,自然会提示unmatched '['。
解决方法很简单,只要保证f-string的外层引号和内部字典键的引号不重复就行,两种写法都可以:
- 外层用双引号,内部键用单引号:
print(f"That drink costs {MENU['espresso']['cost']}.")
- 外层用单引号,内部键用双引号:
print(f'That drink costs {MENU["espresso"]["cost"]}.')
另外,也可以把字典访问表达式用括号括起来(虽然没必要,但也是一种可行写法):
print(f'That drink costs {(MENU["espresso"]["cost"])}.')
内容的提问来源于stack exchange,提问作者user3573647
相关产品推荐
相关产品推荐

