为何基于SymPy的简易while循环无法运行?技术问询
代码无法运行的原因及修复方案
你的代码存在几个关键问题,直接导致运行失败:
- 导入语法错误:
from sympy import init_session()写法错误,导入函数时不需要加括号,应改为from sympy import init_session——你要导入的是函数本身,而非函数调用后的结果。 - 未执行初始化函数:仅写
init_session不会加载sympy的数学函数(比如ln),必须调用函数init_session(),这样ln才会被注册到当前命名空间,否则代码里的ln会被视为未定义变量。 - HTML转义字符问题:代码里的
>是HTML转义的大于号,实际写Python代码时要替换成正常的>。
修复后的代码如下:
from sympy import init_session init_session() def test(v, th): va = v val = 5*ln((2*(10**4))/(2*(10**4)+va-10)) while (va - val > th): va -= 0.01 val = 5*ln((2*10**4)/(2*10**4+va-10)) return val
至于报错指向sympy测试文件的问题,本质是错误的导入方式触发了sympy内部模块加载的异常,进而抛出了关联的错误栈,根源还是你的导入代码写法有误。
内容的提问来源于stack exchange,提问作者xoux
相关产品推荐
相关产品推荐

