2016-11-26 181 views
0

如何讓Python將多項式作爲輸入,同時保持用x代替實際值的能力?Python中的多項式作爲輸入

這裏是我的嘗試:

fx=input("Enter a Polynomial: ") 
x=float(input("At wich position should the polynomial be evaluated: ")) 

while True: 
    print(eval("fx")) 

    continue 

即出現是Python將只是評估FX爲X,問題並不像我通過我的第二個輸入了x的值。

+1

試試'eval(fx)'。 –

+0

這也做了工作。謝謝:-) –

回答

1

這應有助於:

def eval_polynomial(poly, val): 
    xs = [ x.strip().replace('^','**') for x in poly.split('+') ] 
    return sum([eval(n.replace('x', str(val))) for n in xs]) 

請記住,您之前必須確保VAL是出於安全原因的數字。

0

由於特定的變量,如x,沒關係,只要有用戶輸入數字,這將是多項式的係數序列。用戶輸入常數係數,然後輸入線性係數,然後輸入二次係數等等。如果這些是作爲單獨的輸入完成的,則需要一個停止信號,而不是一個數字。如果你想把它全部作爲一個輸入,用戶可以在係數之間加上空格或逗號或類似的東西,並且不需要停止信號。

然後您將係數放入列表中:如果輸入是一行,則只需使用split()方法。多項式的任何操作,例如替換到變量中,都可以用這個列表完成。例如,替換可以通過Horner's method輕鬆高效地完成。有簡單的加法,減法,乘法,除法,微分等算法。讓我知道你是否需要更多關於如何在Python中實現這些算法的細節。

Python的eval()功能是非常危險的,所以我強烈建議您不要使用,儘管它的簡單。

+0

謝謝你的建議,使用coefficientmatrix而不是整個多項式的也似乎是一個有前途的想法,我會銘記在心爲將來的項目。 –