Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 有没有办法在字符串文字中使用变量值?_Python_String - Fatal编程技术网

Python 有没有办法在字符串文字中使用变量值?

Python 有没有办法在字符串文字中使用变量值?,python,string,Python,String,我正在使用python生成LaTeX代码(说来话长,我需要生成120多个独特的测试) 这意味着我有很多字符串,它们有\或{或}等,所以我把它们变成了文本。然而,我还想让Python计算数字并把它们放进去。所以我可能有一个字符串,比如: r“函数$\exp{-1/(变量-x^2+y^2)}$的域是什么?”我要将其写入文件。但是我希望变量是一个随机的数值。问题不在于如何计算变量,而在于是否有一种干净的方法可以将变量放入字符串中,而无需执行以下操作: r“函数$\exp{-1/(“+str(变量)+r

我正在使用python生成LaTeX代码(说来话长,我需要生成120多个独特的测试)

这意味着我有很多字符串,它们有
\
{
}
等,所以我把它们变成了文本。然而,我还想让Python计算数字并把它们放进去。所以我可能有一个字符串,比如:
r“函数$\exp{-1/(变量-x^2+y^2)}$的域是什么?”
我要将其写入文件。但是我希望变量是一个随机的数值。问题不在于如何计算变量,而在于是否有一种干净的方法可以将变量放入字符串中,而无需执行以下操作:
r“函数$\exp{-1/(“+str(变量)+r“-x^2+y^2)}$”的域是什么?”


我会经常这样做,如果可行的话,那就太好了。我有Python 3.5.2。

如果您的目标是不分解字符串,您可以这样做,用变量值替换变量,还可以在字符串中使用%s:

r"What is the domain of the function $\exp{-1/(VARIABLE - x^2+y^2)}$?".replace("VARIABLE", str(VARIABLE))
如果需要多个值,可以使用以下选项:

variable_list = [2, 3]
''.join([e+str(variable_list[c]) if c<len(variable_list) else str(e) for c,e in enumerate(r"What is the domain of the function $\exp{-1/(VARIABLE - x^2+y^2)}$?".split("VARIABLE"))])
variable_list=[2,3]
''.join([e+str(variable_list[c]),如果cPython仍然支持字符串替换运算符
%

r"What is ... $\exp{-1/(%s - x^2+y^2)}$?" % str(VARIABLE)
如果您知道变量的类型,则可以更具体,例如:

r"What is ... $\exp{-1/(%f - x^2+y^2)}$?" % VARIABLE
一次可以替换多个变量:

r"$\mathrm{x}^{%i}_{%i}$" % (VAR1, VAR2)

只要字符串没有LaTeX注释(顺便说一句,也是以
%
开头),这将起作用。如果是这种情况,请将
%
替换为
%

您可以使用%格式

variable = 10
"What is the domain of the function $exp{-1/x + %d}." % (variable)
我非常喜欢,因为变量名出现在值最终将出现的地方

您可以使用原始的f字符串,但需要通过将它们加倍(
{{
)来避开大括号,这可能会让您在编写复杂的文本时感到困惑

要获取字符串是什么…$\exp{-1/(10-x^2+y^2)}$?:

变量=10
rf“什么是…$\exp{-1/({VARIABLE}-x^2+y^2}}}$?”

“所以我把它们变成了文字”听起来好像你对“字符串文字”的含义有点误解。听起来你可能得到了“原始字符串文字”和“字符串文字”混在一起。
r'whatever'
是一个原始字符串文字,但
'whatever'
仍然是一个字符串文字。是的,我意识到它们是一样的(正如我知道python不区分的),但我认为(假设?)每个人都知道我在如何输入它们方面的意思。
.replace(“VARIABLE”,str(VARIABLE))
是一个更自然的解决方案。仅供参考:f字符串出现在3.6中。OP使用3.5.2。