首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >西米。如何检查输入是数字,交感表达式,如果是,如果是包括在表达式中的符号?

西米。如何检查输入是数字,交感表达式,如果是,如果是包括在表达式中的符号?
EN

Stack Overflow用户
提问于 2022-04-30 17:34:11
回答 1查看 85关注 0票数 0

我想编写一些接受1输入的函数。输入可以是数字(整数、浮点数、Sympy常量(如sympy.pi )或实数(如sympy.sin(5))的表达式),也可以是渐近表达式(如x**2-2*y+5)。

我需要的是确定:

输入是数字(没有符号)吗? 2-如果输入是表达式,是否存在特定变量?

我尝试过.free_symbols,如果输入是整数并抛出异常,它就会失败。同样,如果输入是sympy.sin(5),则sympy.sin(5)失败。

提前谢谢。

EN

回答 1

Stack Overflow用户

发布于 2022-04-30 19:21:38

在SymPy中有一个名为sympify的函数,其目的是将非SymPy对象转换为SymPy表达式,例如,int变为SymPy Integer等。如果您对输入进行归一化处理,则可以使用free_symbols

代码语言:javascript
复制
In [6]: def inspect(expr):
   ...:     expr = sympify(expr)
   ...:     symbols = expr.free_symbols
   ...:     if not symbols:
   ...:         print(expr, 'has no symbols')
   ...:     else:
   ...:         print(expr, 'has these symbols:', ', '.join(map(str, symbols)))
   ...: 

In [7]: inspect(1)
1 has no symbols

In [8]: inspect(pi)
pi has no symbols

In [9]: inspect(x+y)
x + y has these symbols: y, x
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72070714

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档