gpt4 book ai didi

python - 嵌套字符串文字插值是否可能?

转载 作者:太空狗 更新时间:2023-10-30 02:15:22 25 4
gpt4 key购买 nike

使用 formatted string literal 时, 在某种程度上可能有嵌套的 f-strings

a = 3
b = 7

res = f"{f'{a*b}'}"

print(res) # '21'

虽然,如果内部表达式是包含字符串的变量,则同样不起作用。

a = 3
b = 7

expr = 'a*b'

res = f"{f'{expr}'}"

print(res) # 'a*b'

有没有办法使它工作并使第二个输出也为 '21'?如果不是,阻止它的第一个和第二个字符串之间有什么区别?

最佳答案

有一些库开发了安全评估数值和逻辑表达式的函数(“安全”是关键)。

首先,设置 -

a = 3
b = 7
op = '*'

numexpr.evaluate

>>> import numexpr as ne
>>> ne.evaluate(f'{a} {op} {b}')
array(21, dtype=int32)

numexpr足够聪明来优化你的表达式,在某些情况下甚至比 numpy 更快。使用 pip 安装。


pandas.eval

来自 Pandas安全 评估API 类似于 ne.evaluate

>>> import pandas as pd
>>> pd.eval(f'{a} {op} {c}')
12

关于python - 嵌套字符串文字插值是否可能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50753043/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com