Ich habe versucht, ein Programm zu bauen, das Funktionen manipuliert (Übungen) - zeigt eine Nachricht über aktuelle Funktion aktiviert, erhält die Eingabe für notwendige Parameter benötigt Aktivieren Sie die Funktion je nach Art und Anzahl der Parameter und aktivieren Sie sie."ValueError: zu viele Werte zum Entpacken" python Ausnahme beim Iterieren einer Liste der Liste
Wenn es zu laufen versuchen, ich die folgende Ausnahme erhalten: Valueerror: zu viele Werte (erwartet 3)
Der Code auszupacken:
s = ['Q4', 'Q5a', 'Q5b', 'Q5c', 'Q5d', 'Q6']
f = [Trapez_rule, myFilter, myFilterMulti, myPrime, isFib, repeated]
inp = [['function', 'boundry a', 'boundry b', 'parts'], ['list', 'function'], ['list', 'list of functions'], ['number'], ['number'], ['function', 'number']]
reqtype = [['f', 'n', 'n', 'n'], ['l', 'f'], ['l', 'lf'], ['n'], ['n'], ['f', 'n']]
for j, k, l in f, inp, reqtype: # for i, j, k, l in s, f, inp, reqtype:
# print(i)
print(j.__doc__)
lst = []
for w, r in k, l:
print(w)
if r == 'f':
x = input()
x = 'lambda x: '
exec(x)
lst.append(x) # 'x'
elif r == 'n':
x = input()
lst.append(x)
elif r == 'l':
m = []
x = 0
while x != -1:
x = input()
m.append(x)
lst.append(m)
elif r == 'lf':
m = []
x = 0
while x != -1:
x = input()
x = 'lambda x: '
exec(x)
m.append(x)
lst.append(m)
execfunc = 'j('
for q in range(len(lst) - 1):
execfunc += lst[q] + ', '
execfunc += lst[q] + ')'
exec(execfunc)
Ich konnte nicht verstehen, wie sie zu beheben der Code, aber ich denke, der Grund ist die Verwendung von geschachtelten Listen als Schleifenindex.
Ich habe keine Ahnung, was Sie denken 'x = input(); x = 'Lambda x:'; exec (x) 'wird tun. –
Können Sie den Stack-Trace veröffentlichen? Hat dieser Code jemals funktioniert? – TemporalWolf
Was denkst du 'für j, k, l in f, inp, reqtype:' tut? Ich denke nicht, dass es das tut. –