Concetti Chiave

  • La definizione di una funzione stabilisce un legame tra il nome e il corpo della funzione stessa.
  • I parametri formali sono i nomi definiti nella funzione, mentre i parametri attuali sono le espressioni passate alla funzione durante la chiamata.
  • Le funzioni possono essere ricorsive, ovvero possono chiamare se stesse all'interno del loro corpo.
  • I nomi delle variabili possono essere globali o locali, con specifiche regole su come possono essere utilizzati all'interno delle funzioni.
  • Vari moduli possono essere importati in Python per estendere le funzionalità, come math per funzioni matematiche e random per generare numeri casuali.

Definizione e chiamata di funzione

Definizione crea legame tra nome della funzione e suo corpo

Def ():


Chiamata funzione

f(exp)

Return termina la funzione, restituito come valore della chiamata

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

Nomi globali e locali

Nomi globali: nel frame globale

Nomi 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)
Una funzione ricorsiva è quando può chiamare se stessa nel proprio corpo

Caso 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

From import , , ... ,

From import *

- 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 : se contiene comandi oltre a def di funzioni, quei comandi sono eseguiti

- https://docs.python.org/3/library/string.html string: punctuation, whitespace

Modulo turtle

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)


Domande da interrogazione

  1. Qual è la differenza tra nomi globali e nomi locali in una funzione?
  2. I nomi globali sono definiti nel frame globale, mentre i nomi locali sono definiti nel frame locale della funzione. È importante notare che un nome globale può essere utilizzato solo a destra; se usato a sinistra, diventa locale e genera un errore di nome (nameerror).

  3. Cosa si intende per funzione ricorsiva?
  4. Una funzione ricorsiva è una funzione che può chiamare se stessa all'interno del proprio corpo. Essa deve avere un caso base e un caso ricorsivo per terminare correttamente.

  5. Quali sono i teoremi riguardanti la calcolabilità delle funzioni?
  6. Il Teorema 1 afferma che se una funzione è calcolabile con cicli "for" e condizionali, lo è anche con "while" e condizionali. Il Teorema 2 stabilisce che se una funzione è calcolabile con "while" e condizionali, lo è anche con sola ricorsione e condizionali, e viceversa.

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community