2016-03-22 13 views
1

kullanarak nasıl bütünleştirebilirim s değeri verildiğinde bir liste veren işlevleri func (ler) ile birleştirmek istiyorum. + Için desteklenmeyen işlenen türü (ler): 'jeneratör' ve 'jeneratör'Bir liste basan bir işlevi, trapez kuralı

def func(s): 
    for i in range(1, 100): 
     p = i * 2 + s * 2 
     yield p 

def trap0 (f,lowerl,upperl,n): 
    h = float (upperl-lowerl)/n 
    s =(list(f(lowerl))+list(f(upperl)))/2 
    for i in range (1,n): 
     s = s+f(lowerl+i*h) 
    return s * -h 

lists1=[] 

lists1.append(trap0(func,-1,9,50)) 
print lists1 

Ben TypeError almaya devam.

cevap

0

func yana döner bir jeneratör yardım edin, bunu bir listesine geri döner neyi dönüştürmek gerekir: Bir liste dönmek için fonk değişti

def trap0 (f,lowerl,upperl,n): 
    h = float (upperl-lowerl)/n 
    s =(list(f(lowerl)) + list(f(upperl)))/2 
    for i in range (1,n): 
     s = s + list(f(lowerl+i*h)) 
    return s * -h 
+0

'def fonk (ler): l = [] , i (1, 100) aralığında: l.append (i * 2 + s * 2) l 'döndürdüğümde yine de hata:'/'' liste 've' int için desteklenmeyen işlenen tür (ler) ini aldım ''satır için' s = (f (altl) + f (upperl))/2' –

+0

'Func''' verim p' derken. Bu 'func' bir jeneratör işlevi yapar. aralığında, i için [] = l (1,10): – zondo

+0

I 'def fonk (lar) bir listesini geri işlevi değişmiş l.append dönüş l (I2 + s * 2 *) yazdır (func (10)) def trap0 (f, altl, upperl, n): h = kayan nokta (upperl-lowerl)/n s = (liste (f (alt)) + list (f (upperl)/2)) aralığında i için (1, n): ş = s + listesi (f (lowerl + i * h)) Return s * -H lists1 = [] lists1.append (trap0 (func, -1,9,50)) ''/'' '' ve 'int' 'için desteklenmeyen işlenen türü/hatalarını hala almaya devam ediyorum. Bu –