2017-10-17 14 views
0

Hey Stack-Überlauf-Community, Ich habe eine bestimmte Frage zu meinem Python-Code. Die folgende Anwendung sollte die Funktionswerte berechnen, nachdem der Benutzer die Funktion, das Intervall und die Schrittweite der x-Werte eingegeben hat. Jetzt habe ich das Problem, dass ich nicht weiß, wie man die einzelnen x Werte in die Funktion einfügt. Ich habe es hier nur für die Funktion x^2 gemacht, aber es sollte für viele weitere einzelne Benutzerfunktionen funktionieren. Ich muss also nicht jede einzelne Funktion und deren Berechnung initialisieren. Schon danke.Funktionswert berechnet durch Benutzereingabe

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) 

Antwort

1

Sie können eine Versandtabelle erstellen. Sie können dies mit einem Python dict tun. Angenommen, die Funktionen heißen x2 für x**2 und für x**3.

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

Die Funktionen do_x2 und do_x3 werden müssten definiert, bevor sie hier Referenzierung: Sie könnten die dict als definieren. Dann können Sie tun:

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

Sie können dann f in dem Sie y_werte zum Beispiel nennen würde.

Verwandte Themen