我在使用parse_expr sympy函式來讀取一個函式時遇到了問題。
下面是我的使用方法:
from sympy import *
import sympy as smp
import numpy as np
from sympy.parsing.sympy_parser import parse_expr
print("Welcome..."/span>)
x=smp.Symbol('x')
function=input("輸入你的函式,以X為單位。
如果你想使用定點法,請輸入de G(x)的運算式
")
function=parse_expr(function, x)
而我得到的結果是:
Welcome...
輸入你的函式在X的條件下。
如果你想使用定點法 輸入 de G(x) 的運算式
2*x
回溯(最近一次呼叫)。
檔案"c:Usersjp159DesktopDesktopStudiesExercises.py", 行8, in <module>
function=parse_expr(function, x)
檔案"C:Usersjp159AppDataLocalProgramsPython39libsite-packageessympyparsingsympy_parser.py",行988,in parse_expr
raise TypeError('expecting local_dict to be a dict')
TypeError: expecting local_dict to be a dict。
uj5u.com熱心網友回復:
在一個被初始化為:
的isympy會話中>>> from __future__ import division
>>> from sympy import *
>>> x, y, z, t = symbols('x y z t')
>>> k, m, n = symbols('k m n', integer=True)
>>> f, g, h = symbols('f g h', cls=Function)
>>> init_printing()
檔案可以在https://docs.sympy.org/1.8/找到。
由于local_dict是可選的,我們省略它:
在[1]: parse_expr('2*x')
輸出[1]。2?x
但是我們可以做一個dict--參考一個定義的符號:
在[4]: parse_expr('2*x',{'x':x})
Out[4]。2?x
在[5]: parse_expr('2*x',{'x':y})
Out[5]。2?y
我也可以使用一個看起來不像是任何定義符號的字串:
在[7]: parse_expr('2*X')
Out[7]。2?X
在[8]。_.free_symbols
輸出[8]:{X}。
新程式員的一個關鍵技能是閱讀檔案。 是的,通常這可能很難理解,但仍然應該是第一站。 SO(和一般的網路搜索)應該是在后面。
sympy是用Python撰寫的,所以假設有該語言的基本知識。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/309282.html
標籤:
