如何将字符串参数放入 f 字符串内的函数中?
How to put string parameters in functions inside f strings?
我有以下 f 字符串:
f"Something{function(parameter)}"
我想对该参数进行硬编码,它是一个字符串:
f"Something{function("foobar")}"
它给我这个错误:
SyntaxError: f-string: unmatched '('
我该怎么做?
您可以使用 python 有两种类型的引号:
f"Something{function('foobar')}"
或
f'Something{function("foobar")}'
不幸的是,您不能做的是转义内部字符串的引号。 f"Something{str.upper(\"foobar\")}"
将导致
SyntaxError: f-string expression part cannot include a backslash
这在 PEP-498 中有具体说明,它定义了 f 弦的工作原理。
因为 f 字符串是由词法分析器而不是解析器识别的,所以不能在字符串中嵌套相同类型的引号。词法分析器只是在寻找下一个 "
,而不管它的上下文。在 f"..."
内使用单引号或在 f'...'
.
内使用双引号
f"Something{function('foobar')}"
f'Something{function("foobar")}'
转义引号不是一个选项(出于我现在不明白的原因),这意味着任意嵌套的表达式不是一个选项。您只能使用 4 种类型的引号:
"..."
'...'
"""..."""
'''...'''
Python 允许在字符串周围使用“”和''。最简单的是使用:
f"Something{function('foobar')}"
我有以下 f 字符串:
f"Something{function(parameter)}"
我想对该参数进行硬编码,它是一个字符串:
f"Something{function("foobar")}"
它给我这个错误:
SyntaxError: f-string: unmatched '('
我该怎么做?
您可以使用 python 有两种类型的引号:
f"Something{function('foobar')}"
或
f'Something{function("foobar")}'
不幸的是,您不能做的是转义内部字符串的引号。 f"Something{str.upper(\"foobar\")}"
将导致
SyntaxError: f-string expression part cannot include a backslash
这在 PEP-498 中有具体说明,它定义了 f 弦的工作原理。
因为 f 字符串是由词法分析器而不是解析器识别的,所以不能在字符串中嵌套相同类型的引号。词法分析器只是在寻找下一个 "
,而不管它的上下文。在 f"..."
内使用单引号或在 f'...'
.
f"Something{function('foobar')}"
f'Something{function("foobar")}'
转义引号不是一个选项(出于我现在不明白的原因),这意味着任意嵌套的表达式不是一个选项。您只能使用 4 种类型的引号:
"..."
'...'
"""..."""
'''...'''
Python 允许在字符串周围使用“”和''。最简单的是使用:
f"Something{function('foobar')}"