首页 > 解决方案 > 如何在Python中将字符串公式转换为等效的javascript?

问题描述

我输入了公式字符串,例如:

y = 5.02x^2 + 2x + 10

我希望输出字符串如下:

y = 5.02*pow(x,2) + 2*x +10

到目前为止,我尝试将其匹配为二次方程:

import re
strn = input ("Enter formula :") 
x = re.sub(r'(-?\d+)x\^2 ([+-]\d+)x ([+-]\d+)','Do not know what to put here',strn)
print(x)

但我不知道如何用或替换像^符号pow(a,b)5x5*x

标签: pythonregexquadratic

解决方案


如果要求只是解决*^运营商,那么此代码可能适合您:

>>> import re
>>> s = '5.02x^2 + 2x + 10'
>>> print ( re.sub(r'([a-zA-Z])\^(\d+)', r'pow(\1,\2)', re.sub(r'(\d)([a-zA-Z])', r'\1*\2', s)) )
5.02*pow(x,2) + 2*x + 10

我们在re.sub这里使用 2 个调用:

  1. re.sub(r'(\d)([a-zA-Z])', r'\1*\2', string):*在字母和数字之间插入。请注意,数字必须在字母之前
  2. re.sub(r'([a-zA-Z])\^(\d+)', r'pow(\1,\2)', string): 转换^pow函数

如果您的要求比这更详尽,请更新您的问题。


推荐阅读