FUNZIONE PARI O DISPARI (RICORSIVA)

di il
1 risposte

FUNZIONE PARI O DISPARI (RICORSIVA)

Salve, devo creare una funzione ricorsiva che data una lista di numeri restituisca True se la somma dei numeri contenuti è pari False altrimenti. (Vi prego di non darmi la soluzione all'esercizio) Non riesco a capire per quale motivo non mi restituisca True o False "nella maniera corretta" qualcuno potrebbe illuminarmi? grazie mille in anticipo.
def somma_para(lista):
    if len(lista) == 0:
        return 0
    return lista[0] + somma_para(lista[1:]) % 2 == 0

risultato = somma_para([1, 2, 3, 4, 5, 6])
print(risultato)
come viene svolta la seguente riga di codice?
return lista[0] + somma_para(lista[1:]) % 2 == 0
c'è un modo corretto per scrivere la riga di codice appena citata in modo che restituisca
il risultato corretto senza dover aggiungere ulteriori istruzioni?

1 Risposte

  • Re: FUNZIONE PARI O DISPARI (RICORSIVA)

    Fatta così non funziona perché in questa ricorsione alla fine avrai una catena di
    lista[0]+(lista[0]+(lista[0]+(lista[0]+(0%2==0))%2==0)%2==0)
    fino al raggiungimento della fine della lista.
    Devi ripensare alla ricorsione, eventualmente passando la somma parziale al successivo livello di ricorsione, e facendo il calcolo del pari solo all'uscita finale.
Devi accedere o registrarti per scrivere nel forum
1 risposte