Concetti Chiave
- Le funzioni in programmazione stabiliscono un legame tra il nome della funzione e il suo corpo, con parametri formali e attuali che devono corrispondere.
- Le variabili si dividono in globali e locali: le globali si trovano nel frame globale, mentre le locali nel frame della funzione.
- Le funzioni ricorsive sono in grado di richiamare se stesse, necessitando di un caso base e uno ricorsivo per funzionare correttamente.
- I moduli si importano per utilizzare funzioni specifiche, con attenzione alla loro esecuzione se contengono comandi oltre alle definizioni delle funzioni.
- Il modulo 'turtle' offre comandi per operazioni grafiche come spostamenti e rotazioni, utili per manipolare una tartaruga virtuale sullo schermo.
Funzioni, ricorsione e moduli
Funzioni
Definizione crea legame tra nome della funzione e suo corpoDef
Chiamata funzione
f(exp)
Return
Parametri formali = nomi, separati da una virgola se sono più di uno
Parametri attuali (o argomenti) = stesso numero dei formali, separati da virgole se più di uno. Sono espressioni.
Indentazione = uso di quattro spazi come rientro
Variabili
Nomi globali: nel frame globaleNomi locali: nel frame locale della funzione
Posso usare un nome globale solo a destra: se lo usi a sinistra diventa locale (e c'è un nameerror)
Ricorsione
Una funzione ricorsiva è quando può chiamare se stessa nel proprio corpoCaso base e caso ricorsivo
Teorema 1: se f è una funzione calcolabile con for e condizionale, allora è calcolabile con solo while e condizionale
Teorema 2: i) se f è una funzine calcolabile con while e condizionale, allora è calolabile con sola ricorsione e condizionale; ii) se f è una funzione calcolabile con ricorsione e condizionale, allora è calcolabile con solo while e condizionale
Importare moduli
FromFrom
- https://docs.python.org/3/library/math.html math: sin(x), cos(x), sqrt(x), e (numero di nepero), pi (), factorial(x), log2
- https://docs.python.org/3/library/random.html random: randint(a,b) (estremi inlcusi)
- copy: copy (copia piatta), deepcopy (copia)
Attenzione: esegue comunque tutto il programma
- https://docs.python.org/3/library/string.html string: punctuation, whitespace
Modulo turtle https://docs.python.org/3/library/turtle.html
Forward(distance)
Backward(distance)
Right(angle)
Left(angle)
Pendown()
Penup()
Goto(x, y)
Setheading(to_angle)