a=[n*n for n in xrange(8)] print a # [0, 1, 4, 9, 16, 25, 36, 49] a=(n*n for n in xrange(8)) print a # for k in xrange(4): print a.next(), # 0 1 4 9 --------------------------------------- def quadrati (): n=0 while 1: yield n*n; n+=1 q=quadrati() for k in xrange(8): print q.next(), # 0 1 4 9 16 25 36 49 --------------------------------------- def genfatt (): f=1; i=2 while 1: yield f; f*=i; i+=1 fattoriali=genfatt() for k in xrange(8): print fattoriali.next(), # 1 2 6 24 120 720 5040 40320 --------------------------------------- def quadrati (n): for k in xrange(n): yield k*k q=quadrati(8) for x in q: print x, # 0 1 4 9 16 25 36 49 --------------------------------------- def generafib (n): a=0; b=1 for k in xrange(n): a,b=a+b,a yield a fib=generafib(9) for x in fib: print x, # 1 1 2 3 5 8 13 21 34 --------------------------------------- fib=generafib(9) print list(fib) # [1, 1, 2, 3, 5, 8, 13, 21, 34] --------------------------------------- fib=generafib(9) for x in fib: print x, print list(fib) # [] fib=generafib(9) for k in xrange(5): print fib.next(), # 1 1 2 3 5 print print list(fib) # [8, 13, 21, 34] --------------------------------------- def generanumeri (): n=0 while 1: yield n; n+=1 numeri=generanumeri def schemadiprogramma (): while 1: e=evento() if e.azione=='fine': break if e.azione=='inserimento': n=numeri.next() inserisci(e.libro,n) --------------------------------------- cos=math.cos g=(cos(x) for x in (0.9,0.1,0.4,0.4)) print max(g) # 0.995004165278 print list(g) # [] --------------------------------------- def leggirighe (nome): f=file(nome,'r') while 1: a=f.readline() if not a: break a=a.strip() if a: yield a f.close() righe=leggirighe('dati') numeri=(int(x) for x in righe) print numeri # def somma (v): s=0 for x in v: s+=x return s print somma(numeri) # 8183 (ad esempio)