Python生成Word数学公式时,如何结合含大括号的原始字符串与f字符串?
解决含大括号的数学公式字符串变量替换问题
方法一:字符串替换(最省心的方式)
不用纠结转义规则,直接把公式里的目标字符替换成变量值,完全不影响原有的大括号结构:
y = 5 formula_str = r"\frac{-e^{i/pi}}{y^n}$!" # 把公式里的"y"替换成变量的数值 new_formula = formula_str.replace("y", str(y)) cur_par.add_run(new_formula).font.math = True
最终生成的公式是\frac{-e^{i/pi}}{5^n}$!,完美保留原公式的大括号结构。
方法二:f-string转义大括号
如果非要用f-string,把原公式里的单个{和}改成双大括号{{和}},这样f-string会把双大括号解析成单个大括号,同时正常替换变量:
y = 5 # 原大括号转义成{{}},变量用{y}占位 new_formula = fr"\frac{{-e^{{i/pi}}}}{{{y}^n}}$!" cur_par.add_run(new_formula).font.math = True
这里用fr前缀兼顾了原始字符串的转义和f-string的变量替换功能。
方法三:str.format()转义大括号
和f-string逻辑一致,format方法里也需要用双大括号转义原公式的大括号,再指定变量:
y = 5 # 原大括号写成{{}},变量占位符为{y} new_formula = r"\frac{{-e^{{i/pi}}}}{{{y}^n}}$!".format(y=y) cur_par.add_run(new_formula).font.math = True
内容的提问来源于stack exchange,提问作者Johan Tuls
相关产品推荐
相关产品推荐

