Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/303.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 是否将xy转换为x*y?_Python_Numpy_Math_Sympy - Fatal编程技术网

Python 是否将xy转换为x*y?

Python 是否将xy转换为x*y?,python,numpy,math,sympy,Python,Numpy,Math,Sympy,我正在从事一个项目,其中用户以xy或2x或2ab的形式输入输入,但Symphy无法理解,我想将它们转换为x*y,2*x,2*a*bSymphy实际上能够理解这一点。您需要使用来帮助它: from sympy.parsing.sympy_parser import parse_expr from sympy.parsing.sympy_parser import standard_transformations,\ implicit_multiplication_application trans

我正在从事一个项目,其中用户以
xy
2x
2ab
的形式输入输入,但Symphy无法理解,我想将它们转换为
x*y
2*x
2*a*b

Symphy
实际上能够理解这一点。您需要使用来帮助它:

from sympy.parsing.sympy_parser import parse_expr
from sympy.parsing.sympy_parser import standard_transformations,\
implicit_multiplication_application
transformations = (standard_transformations +
    (implicit_multiplication_application,))
print(parse_expr("xy", transformations=transformations))
输出:
你的问题没有太多限制。您是否在询问如何在字符串中的字符之间插入星号?如何区分
xy
表示
x*y
xy
表示“名为
xy
的变量”之间的区别?编程语言不做隐式乘法是有原因的……比如,
“*”。join(2ab)
假设用户输入一个等式(sin(sqrt(xy)+2ab)*e^sqrt(x))/sqrt(x),我想把它转换成(sin(sqrt(x*y)+2*a*b)*e^sqrt(x))/sqrt(x)@ShadowRanger,这在
sympy
上下文中是一个合理的问题。Akshay不应该在标签中包含
numpy
。但是,虽然有一个
sympy
解决方案,但明智的做法是避免表达式中固有的歧义。感谢@mathfux,它适用于较小的方程,但当涉及到较大的方程时,我们喜欢“(sin(sqrt(xy)+2ab)*e^sqrt(x))/sqrt(x)”信息技术fails@AkshayR您需要为其他情况应用更多不同类型的转换,如
的sympy.parsing.sympy\u parser.convert\u xor
for
^
运算符等。试着在文档中查找它们。我想没有一种通用的转换组合可以适用于每种情况的用户输入。我可以猜测您想要拆分
xy
2ab
。但是为什么不
sin
sqrt
?从某种意义上说,该计划必须“解读你的意图”。