You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

在f-string中使用字典值出现语法错误的原因及解决方法

为什么f-string里引用字典值会报语法错误?

这问题我刚学Python的时候也踩过一模一样的坑!先看你写的这段代码:

print(f'value = {mydict['key']}')

问题根源

核心问题就是引号冲突:f-string本身用单引号'包裹了整个字符串,而你访问字典键的时候又用了单引号。Python解释器会把f-string开头的第一个'mydict后面的第一个'当成一对闭合引号,剩下的代码就变成了语法混乱的片段,直接触发SyntaxError。

三种快速解决方法

  • 给字典键换双引号:把字典键的单引号改成双引号,和外层f-string的单引号错开:
    print(f'value = {mydict["key"]}')
    
  • 给f-string换双引号:反过来,用双引号包裹整个f-string,内部键保留单引号:
    print(f"value = {mydict['key']}")
    
  • 用字典的get方法(额外加分项):如果担心键不存在会抛KeyError,还可以用get()方法,同时也能避开引号冲突:
    print(f'value = {mydict.get("key")}')
    

要是你遇到字符串里需要同时混用单双引号的复杂场景,还可以用三引号'''"""包裹整个f-string,但咱们这个场景下前两种方法足够简洁好用了。

内容的提问来源于stack exchange,提问作者Alex Deft

火山引擎 最新活动