[Python] typeError: missing 1 required positional argument

Messaggioda _ester_ » 31/05/2020, 15:10

salve, non riesco a capire perché python restituisce un errore nel mio codice. riporto la traccia dell'esercizio:
"Data una matrice restituire la somma delle righe ma considerando le sole righe che non presentano elementi pari"
io ho sviluppato due funzioni, ecco il codice:
Codice:
def sommaRigaDispari (a):
  cont=0
  for i in a:
    if i%2==0:
      return 0
    else:
      cont+=i
  return cont

def sommaTotale(mat, somma):
  if len (mat)==1:
    somma += sommaDispari (mat[0])
    return somma
  else:
    somma += sommaRigaDispari (mat[0])
    return sommaTotale(mat[1:])

mat= [[1,1,1],[2,5,7],[4,6,8]]
somma=0
sommaTotale(mat, somma)

il problema è nella seconda funzione, perché se eseguo segnala il seguente errore:
Codice:
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-39-cd94d5f1e263> in <module>()
     21 mat= [[1,1,1],[2,5,7],[4,6,8]]
     22 summ=0
---> 23 sommaTotale(mat, summ)

<ipython-input-39-cd94d5f1e263> in sommaTotale(mat, somma)
     17   else:
     18     somma += sommaRigaDispari (mat[0])
---> 19     return sommaTotale(mat[1:])
     20
     21 mat= [[1,1,1],[2,5,7],[4,6,8]]

TypeError: sommaTotale() missing 1 required positional argument: 'somma'

ho cominciato da poco tempo a programmare ma mi sembra che l'errore di sopra segnali il fatto che non è presente la variabile "somma" nella seconda funzione, ma io l'ho dichiarata. significa questo l'errore "missing 1 required positional argument"? e se sì potreste aiutarmi a capire dove ho sbagliato?
grazie mille in anticipo
_ester_
Junior Member
Junior Member
 
Messaggio: 37 di 202
Iscritto il: 29/12/2019, 22:48

Re: [Python] typeError: missing 1 required positional argument

Messaggioda apatriarca » 31/05/2020, 15:22

La funzione sommaTotale ha due argomenti, la matrice e la somma. Nella chiamata ricorsiva tu hai passato solo un argomento, il primo. Avresti anche dovuto passare la somma.
apatriarca
Moderatore
Moderatore
 
Messaggio: 5425 di 10436
Iscritto il: 08/12/2008, 20:37
Località: Madrid

Re: [Python] typeError: missing 1 required positional argument

Messaggioda _ester_ » 31/05/2020, 15:28

Grazie infinite :))
_ester_
Junior Member
Junior Member
 
Messaggio: 38 di 202
Iscritto il: 29/12/2019, 22:48


Torna a Informatica

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite