Please ignore secret bonuses. Secret tests do NOT award bonus. Max hw grade is 30+2 bonus efficiency

Do you need help?

Notice Board

Per partecipare al corso di Fondamenti di programmazione 2023-24 loggatevi e attivatelo nella vostra pagina dei corsi preferiti. A quel punto il corso appare nel menù personale cliccando sul proprio avatar. Per i materiali degli anni precedenti seguite lo stesso metodo.

To join the Programming/Lab 2023-24 course, log-on and select it on the my courses page. It will appear on the personal menu of your avatar. For earlier years use the same method.

TypeError: object of type 'NoneType' has no len() cosa significa??

I
Ivano.Piredda (7880 points)
5 8 30
in HW4 by (7.9k points)
closed by
Ciao a tutti, eseguendo i test con pytest mi riporta il messaggio: TypeError: object of type 'NoneType' has no len(). Non capisco cosa possa aver fatto di sbagliato, dato che facendo la prova da console su Python, ogni singolo test mi torna la stringa corretta, ma fallisco praticamente tutti i test tramite pytest.

Sono alle primissime armi, quindi magari mi sfugge qualcosa...

Qualcuno può illuminarmi???
679 views
closed with the note: Risolto

4 Answers

Best answer
Marty (2810 points)
1 2 19
by (2.8k points)
selected by
Quell'errore significa sostanzialmente che, durante l'esecuzione del codice, viene riscontrato l'utilizzo della funzione len() applicata a un tipo di dato la cui lunghezza non può essere misurata (in questo caso NoneType, ossia nessun tipo, il che mi fa pensare che alla variabile in questione non venga assegnato alcun valore per qualche motivo). L'unico consiglio che posso darti non avendo la possibilità di vedere il tuo codice è quello di ispezionare a fondo gli errori ritornati dai test, così da cercare di capire con maggiore precisione quale punto del codice causa l'errore e sistemarlo (prova a vedere per esempio se per sbaglio hai implementato una funzione senza return o che ritorna esplicitamente un risultato soltanto al verificarsi di una determinata condizione).
I
Ivano.Piredda (7880 points)
5 8 30
by (7.9k points)
Grazie provo a verificare
l.vitale3 (6010 points)
10 22 83
by (6.0k points)
Stai usando il metodo sort? Usa sorted oppure usa sort ma dopo che hai la lista creata.
I
Ivano.Piredda (7880 points)
5 8 30
by (7.9k points)
No, non ho usato sort o sorted
SyncroIT (8690 points)
11 30 98
by (8.7k points)
Stai ritornando un valore a fine funzione col comando return?
I
Ivano.Piredda (7880 points)
5 8 30
by (7.9k points)
Si, torno sempre con return, in tutte le funzioni, una volta un intero, poi una stringa e una volta una lista di stringhe
I
Ivano.Piredda (7880 points)
5 8 30
by (7.9k points)
RISOLTO!!!

Il problema era che non tornavo il valore correttamente!!!

Grazie a tutti
Taiel26 (1570 points)
3 6 16
by (1.6k points)
quando hai finito di eseguire il tuo codice restituisci la stringa o stai usando print?