# primo programma in Python print "hello world!" # Dichiarazione variabili estremamente semplice a=2 b=3 c=a*b print "c=",c #esempio uso istruzione if if (c>4): print" c maggiore di 4" #dichiarazione lista di dati a = [1,2,3,4] # dichiarazione lista di stringhe b = ['pippo', 'topolino','pluto','paperino'] print "a",a print "b",b print"\n" #stampo 'a capo' print"esempio uso ciclo for \n",#esempio uso istruzione for for i in a: #uso ciclo for su lista interi print i for i in b: #uso ciclo for su lista stringhe print i # ------------------- Esempio creazione di una funzione --------------- def funzione_elevo_al_quadrato(x): #definizione funzione y = x*x return y z = funzione_elevo_al_quadrato(5) # utilizzo funzione print"\n" #stampo 'a capo' print "risultato funzione f(5)=", z #--------------------- Esempi Crivello di Eratostene ------------------- # Versione Crivello di Eratostene che usa # funzioni lambda e filter tipiche di python # anche se di uso "avanzato" # lambda permette di calcolare al volo semplici funzioni # filter(funzione, lista) offre un modo "elegante" per filtrare tutti gli elementi di una lista che verificano una certa funzione # (nel nostro caso tutti i numeri che danno resto zero nella divisione fra polinomi) # con n%m Python restituisce il resto di una divisione import time def eratostene(n): setaccio = range(2, n+1) primi = [] while setaccio: # finche' ci sono numeri nel setaccio primi.append(setaccio[0]) setaccio = filter(lambda x: x%primi[-1], setaccio) return primi t_start = time.time() elenco_primi = eratostene(10000) t_eratostene = time.time()-t_start print elenco_primi print t_eratostene # Seconda versione ottimizzata tratta da: # Programmazione in Python 26 Jul 2012 #by J. Eschgfaller # qui si cercano i numeri primi fra 2 e sqrt(n) import math def eratostene2 (n): v=range(2,n+1); u=[]; r=math.sqrt(n); p=2 while p<=r: u.append(p) v=[x for x in v if x%p] p=v[0] return u+v t_start2 = time.time() elenco_primi2 = eratostene2(10000) t_eratostene2 = time.time()-t_start2 print elenco_primi2 print "tempo algo eratostene ottimizzato",t_eratostene2 print "tempo algo eratostene non ottimizzato", t_eratostene