将python f-string与格式相结合

Ali*_*aei 1 python f-string

我想使用传递给format方法的变量计算f-string中的数学运算.例如,我需要这样的东西:

print(f"{{a}} * 3".format(a=2))
Run Code Online (Sandbox Code Playgroud)

此代码打印:

2 * 3
Run Code Online (Sandbox Code Playgroud)

但我想要的结果是6.另外我不会使用python eval函数来评估这个字符串.

fil*_*ton 7

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))
Run Code Online (Sandbox Code Playgroud)

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

您也可以阅读此Reddit主题,以了解为什么这可能不是一个好主意。


Chr*_*ean 5

您还需要使用3大括号:

>>> a = 2
>>> print(f"{a * 3}")
6
>>>
Run Code Online (Sandbox Code Playgroud)