2017-10-17 48 views
0

嘿堆棧溢出社區, 我對我的Python代碼有一個具體問題。在用戶輸入x值的函數,間隔和步長後,以下應用程序應計算功能值。現在我遇到了問題,我不知道如何將單個x值插入到函數中。我在這裏只爲函數x^2做過,但它應該可以用於更多個人用戶功能。所以我不必初始化每一個函數和它們的計算。 已經謝謝你。通過用戶輸入計算的函數值

from math import sqrt 

xv = [] 
y = [] 

def AddSpace (x): 
    print ("\n" * x) 


AddSpace (4) 
func = input ("Funktion: ") 
ug = input ("Untere Grenze: ") 
og = input ("Obere Grenze: ") 
sw = input ("Schrittweite: ") 

#-------------------------------------- 
def x_werte(ug, og, sw): 
    g = ug 
    while (g >= ug and g <= og): 
     xv.append (g) 
     g += sw 

x_werte (int (ug), int (og), float (sw)) 

#-------------------------------------- 

def y_werte(): 
    if func == "x**2": 
     for p in range (0, len (xv)):  
      y.append (float (xv [p])**2) 

回答

1

您可以創建一個調度表。你可以用Python dict來做到這一點。例如,假設x**2和的x**3的函數名爲x2。你可以定義字典爲:

dispatch_dict = { 
    "x2": do_x2, 
    "x3": do_x3 
} 

功能do_x2do_x3將在這裏引用它們之前定義。然後,你可以這樣做:

if func not in dispatch_dict: 
    print("No such function") 
else: 
    f = dispatch_dict[func] 

你可以調用f,你會打電話y_werte例如。