Funzioni ricorsive - Parte 2
Fa parte della sezione Logica e flusso del percorso Python di Coddy. Lezione 61 di 78.
Le funzioni ricorsive hanno in genere due parti:
- Caso base: definisce quando la ricorsione dovrebbe fermarsi.
- Passo ricorsivo: richiama la funzione stessa con un input più piccolo.
Esempio: calcolare il fattoriale usando la ricorsione:
def factorial(n):
if n == 1: # Caso base
return 1
return n * factorial(n - 1) # Chiamata ricorsiva
print(factorial(5)) # Output: 120Qui, la funzione continua a chiamare sé stessa con n - 1 finché non raggiunge 1, dove la ricorsione si ferma.
Esempio: invertire una stringa:
def recursive_reverse(s):
if len(s) <= 1: # Caso base: stringa vuota o di un solo carattere
return s
else:
return recursive_reverse(s[1:]) + s[0] # Passo ricorsivo
text = "hello"
result = recursive_reverse(text)
print(result)
# Output: ollehIn questo esempio, la funzione recursive_reverse richiama se stessa con il resto della stringa (s[1:]) finché la stringa non è vuota o contiene un solo carattere. Ogni chiamata aggiunge il primo carattere al risultato della chiamata ricorsiva, invertendo così la stringa.
Sfida
FacileScrivi una funzione ricorsiva denominata fibonacci che accetta come argomento un intero positivo n e restituisce l’n-esimo numero di Fibonacci. La sequenza di Fibonacci è definita come:
fibonacci(1) = 0fibonacci(2) = 1fibonacci(n) = fibonacci(n-1) + fibonacci(n-2)pern > 2.
Input di esempio:
n = 6Output di esempio:
5Provalo tu
def fibonacci(n):
# Scrivi il codice quiQuesta lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Logica e flusso
1Esplorazione delle variabili
CostantiAssegnazioni multiple di variabiliScambio di variabiliVariabili segnapostoArrotondare i numeriConversione di liste4Applicazione Rubrica
Visualizzare il menuAggiungere un contatto7Insiemi Parte 2
Operazioni matematiche Parte 1Operazioni matematiche Parte 2Riepilogo - Caccia al tesoroSottoinsiemi e sovrainsiemiIterare sugli insiemiRiepilogo - Tracciamento del torneo10Comprensioni di liste di base
La sintassiCreare liste sempliciAggiungere condizioniUsare l'aggregazione dei datiRipasso - La casa delle listeRipasso - Elementi di libertà13Sistema di gestione dell'inventario
Panoramica del progettoAggiungi articolo2Dizionari Parte 1
Che cos'è un dizionario?Creare un dizionarioAccedere ai valoriModificare i dizionariRipasso - Gestore di ricette5Decisioni avanzate
Operatore ternarioVerifiche di appartenenzaVerifiche di identitàErrori di indentazioneRiepilogo - Filtro vacanze8Gestore delle carriere degli studenti
Panoramica del progettoAggiungi studente11Funzioni avanzate
Restituire più valoriFunzioni lambda - Parte 1Funzioni lambda - Parte 2Sfida di ripasso - Ordinamento con lambdaFunzioni ricorsive - Parte 1Funzioni ricorsive - Parte 2Ripasso - Somma di una lista annidata14Funzioni di ordine superiore
La funzione mapLa funzione filterRipasso - Validatore di emailRipasso - Elaboratore di numeri3Dizionari Parte 2
Metodi dei dizionariDizionari annidatiVerificare la presenza di chiaviIterare sui dizionariRipasso - Contatore di frequenza6Insiemi Parte 1
Che cos'è un insieme?Operazioni di baseMetodi degli insiemiRiepilogo - Rimuovere i duplicati9Aggregazione avanzata dei dati
Usare la sommaTrovare il minimo e il massimoOrdinare i dati in modo efficienteRipasso - Ordinatore di dizionari12Gestione di base degli errori
Che cos'è la gestione degli errori?Il blocco try ed exceptGestire più eccezioniRiepilogo - Errori nel carrelloEsercitati da solo: Compilatore Python online