Menu
Coddy logo textTech

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:

  1. Caso base: definisce quando la ricorsione dovrebbe fermarsi.
  2. 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: 120

Qui, 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: olleh

In 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.

challenge icon

Sfida

Facile

Scrivi 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) = 0
  • fibonacci(2) = 1
  • fibonacci(n) = fibonacci(n-1) + fibonacci(n-2) per n > 2.

Input di esempio:

n = 6

Output di esempio:

5

Provalo tu

def fibonacci(n):
    # Scrivi il codice qui
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Logica e flusso

Esercitati da solo: Compilatore Python online