具有格式字符串和对象文本的Python SyntaxError

2024-04-29 20:27:07 发布

您现在位置:Python中文网/ 问答频道 /正文

此代码生成SyntaxError

f'something_{{ 'BEAM': '.', 'GRIN': '.', 'GRIN31': '/' }[coin]}'

对于内联“select”,是否可以以这种方式使用对象文字


Tags: 对象方式select代码生成somethingbeamcoin文字
2条回答

有两个问题

首先,不能在^ {CD1>}显示中使用单引号,因为字符串解析器不考虑括号“分离”它们;第一个'关闭字符串文本。(或者更确切地说,您需要使用不同的引号或转义引号,以避免无意中关闭f字符串。)

第二,{{是f字符串中的单个文本{;你需要用空格隔开它们

>>> coin = "GRIN"
>>> f'something_{ { "BEAM": ".", "GRIN": ".", "GRIN31": "/" }[coin]}'
'something_.'

是的,这是可能的,举个例子:

$ test1 = 'abc'
$ test2 = '123'
$ test3= 'foo'
$ coin = 'foo'
f"something_{ { test1: '.', test2: '.', test3: '/' }[coin]}"
>>> something_/

在f字符串语法中,括号由双精度{{或}}=>;{或},这就是为什么前2{之间有一个空白

相关问题 更多 >