我想使用传递给format
方法的变量来计算 f 字符串中的数学运算。例如我需要类似的东西:
print(f"{{a}} * 3".format(a=2))
此代码打印:
2 * 3
但我想要的结果是 6。我也不会使用 pythoneval
函数来评估这个字符串。
如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 线程,了解为什么这可能是个坏主意。
您还需要放入3
花括号:
>>> a = 2
>>> print(f"{a * 3}")
6
>>>
你可以试试这个。
print((int(f"{{a}}".format(a=2)))*3)