我可以在Python的字符串格式"语言"中进行数学运算吗?

jlc*_*lin 2 python

我在做字符串格式化的时候想做一些简单的数学运算.例如

N = {'number':3}
four = '{number:d + 1}'.format(**N)
Run Code Online (Sandbox Code Playgroud)

这当然不起作用.有没有办法实现这一点,我不知道?

谢谢!

Ben*_*rns 6

"有没有办法实现这一点,我不知道?" 如果用"this"表示使用str.format在格式字符串中编码一些数学逻辑,那么不 - 不是我所知道的.但是,如果你使用模板语言,你可以表达各种类似的东西.

在Python中有十亿个不同的模板语言选项,所以我不会试着说出哪个是最好的,我会让你决定.请参阅Python wiki中的这篇文章:http://wiki.python.org/moin/Templating

我最喜欢的是Jinja2,虽然它可能对你所谈论的内容有些过分.

以下是如何使用Jinja2实现目标的示例:

N = { 'd' : 3 }
four = Template(u'number:{{ d + 1 }}').render(**N)
Run Code Online (Sandbox Code Playgroud)

像Jinja2这样的模板系统的主要优点是它允许您将模板存储为与应用程序控制逻辑分开的文件,这样您就可以以限制或禁止表示执行的副作用的方式维护程序的视图/表示逻辑.