首页 > 解决方案 > 在python中括号内带有数学表达式的字符串上的format()

问题描述

有没有办法使用 .format() 获得相同的结果?

a = 10
print(f'something {a+2}')
something 12

当我尝试这样做时,我得到 KeyError:

print('something {a+2}'.format(a=10))
KeyError                                  
Traceback (most recent call last)
<ipython-input-94-69f36f3c6aec> in <module>
----> 1 'something {a+2}'.format(a=10)

KeyError: 'a+2'

标签: pythonpython-3.xstringformatf-string

解决方案


Python 3.8 新特性(海象)

a = 10
print(f'something {(result:=a+2)}')

蟒蛇 3.7

print(f'something {(a+2)}')
print(f'something {a + 2}')
print('something {a}'.format(a=10 + 2))
print('something {}'.format(a+2))

更新了上述所有选项(只是为了符合 OP 的期望)


推荐阅读