3

我想使用传递给format方法的变量来计算 f 字符串中的数学运算。例如我需要类似的东西:

print(f"{{a}} * 3".format(a=2))

此代码打印:

2 * 3

但我想要的结果是 6。我也不会使用 pythoneval函数来评估这个字符串。

4

3 回答 3

10

PEP 498所述:

str.format()表达式解析器”不适合在实现 f 字符串时使用。

虽然您可以执行以下操作:

name = "John"
age = 30
print(f'My name is {{0}} and I am 5 years older than {age - 5}'.format(name))

您在原始问题中要求的内容是不可行的。

您还可以阅读此 Reddit 线程,了解为什么这可能是个坏主意。

于 2017-08-17T15:58:13.140 回答
6

您还需要放入3花括号:

>>> a = 2
>>> print(f"{a * 3}")
6
>>>
于 2017-08-17T15:53:35.890 回答
0

你可以试试这个。

print((int(f"{{a}}".format(a=2)))*3)
于 2017-08-17T15:52:46.777 回答