将python f-string与格式相结合

时间:2017-08-17 15:45:37

标签: python f-string

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

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

此代码打印:

2 * 3

但我希望结果为6.此外,我不会使用python eval函数来评估此字符串。

3 个答案:

答案 0 :(得分:5)

您还需要将3放在花括号中:

>>> a = 2
>>> print(f"{a * 3}")
6
>>>

答案 1 :(得分:4)

PEP 498所述:

  

str.format()“表达式解析器”不适合在实现f-strings时使用。

虽然你可以这样做:

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

你在原始问题中要求的是不可行的。

您还可以阅读this Reddit thread,看看为什么这可能是一个坏主意。

答案 2 :(得分:0)

你可以试试这个。

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