python – 检测变量是否为sympy类型
发布时间:2020-12-20 11:42:42 所属栏目:Python 来源:网络整理
导读:我有一个变量,可能是也可能不是一个同情类.我想将它转换为浮点数,但我在以一般方式执行此操作时遇到问题: $pythonPython 2.7.3 (default,Dec 18 2014,19:10:20) [GCC 4.6.3] on linux2 import sympy x = sympy.sqrt(2) type(x)class 'sympy.core.power.Pow'
我有一个变量,可能是也可能不是一个同情类.我想将它转换为浮点数,但我在以一般方式执行此操作时遇到问题:
$python Python 2.7.3 (default,Dec 18 2014,19:10:20) [GCC 4.6.3] on linux2 >>> import sympy >>> x = sympy.sqrt(2) >>> type(x) <class 'sympy.core.power.Pow'> >>> y = 1 + x >>> type(y) <class 'sympy.core.add.Add'> >>> z = 3 * x >>> type(z) <class 'sympy.core.mul.Mul'> >>> if isinstance(z,sympy.core): ... z = z.evalf(50) # 50 dp ... Traceback (most recent call last): File "<stdin>",line 1,in <module> TypeError: isinstance() arg 2 must be a class,type,or tuple of classes and types 我将测试x,y,z以转换为浮点数.请注意,我不能在x,y和z上运行evalf()而不进行检查,因为它们可能已经是整数或浮点数,这会引发异常. 不幸的是,sympy.sympify()没有转换为浮点数.如果它确实那么这将是我的问题的理想解决方案: >>> sympy.sympify(z) 3*sqrt(2) >>> type(sympy.sympify(z)) <class 'sympy.core.mul.Mul'> 解决方法
那这个呢:
isinstance(z,tuple(sympy.core.all_classes)) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |