TypeError“模块”对象不可调用(SymPy)

时间:2019-12-28 11:34:29

标签: python sympy

正如主题所说,模块是不可调用的,我也不是很清楚为什么。它来自类似帖子的(可能)不一样的问题,至少我不知道应该导入什么。我正在使用SymPy。

这是完整的错误文本:

Traceback (most recent call last):
      File "C:\Users\Marek\Desktop\Bartłomiej\SymPy\PrimeTest.py", line 16, in <module>
        if isinstance(evalf((n/p).subs(x, 1)), int):
    TypeError: 'module' object is not callable

完整代码:

from sympy import *
import math 
import sys
import mpmath
sys.modules['sympy.mpmath'] = mpmath

x, y = symbols(' x y ')

#p = sympfy(input(Check this: ))
p = 100

n = expand(((x-1)**p - (x**p - 1)))

print(n) 

if isinstance(evalf((n/p).subs(x, 1)), int):
    print("This number is a prime!")
else:
    print("It is not a prime")

我正在尝试测试素数。 (x-1)^ p-(x ^ p-1),如果可以将其除以p并且p!= 1,则其为质数。我的代码质量不高,因为我将x更改为1,但我想检查一下是否可行。.

1 个答案:

答案 0 :(得分:2)

我认为您使用的evalf()错误。

从我所见,应该是((n/p).subs(x, 1)).evalf()

https://docs.sympy.org/latest/modules/evalf.html

可能还有其他事情,请尝试一下。

相关问题