我試圖建立一個程序,操縱函數(練習) - 顯示一個消息,關於當前函數來激活,獲取必要的參數輸入需要根據參數的類型和數量激活該功能,並激活它。「ValueError:太多的值來解壓」python異常時,迭代列表
當試圖運行它,我得到以下異常: ValueError異常:值過多解壓(預計3)
代碼:
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)
我無法理解如何解決代碼,但我認爲原因是使用嵌套列表作爲循環的索引。
我不知道你在想什麼'x = input(); x ='lambda x:'; exec(x)'會做。 –
你可以發佈堆棧跟蹤嗎?此代碼是否有效? – TemporalWolf
你對f,inp,reqtype:中的j,k,l有什麼看法?我不認爲它是這樣。 –