我想使用传递给format
方法的变量计算f-string中的数学运算。例如,我需要类似的东西:
print(f"{{a}} * 3".format(a=2))
此代码打印:
2 * 3
但我希望结果为6.此外,我不会使用python eval
函数来评估此字符串。
答案 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)