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

Do you need help?

hw8 nested dictionary: keyerror

m
massimocoppola (950 points)
2 18 21
in HW8 obbligatorio by (950 points)
closed by
Ho un nested dictionary e mi capita di fare

inizializzo dizionario ad ogni chiamata ricorsiva:

dizionario = {stringa1: { } }, stringa2: { } }

ricavo stringa_x

se stringa_x in dizionario[stringa1]

i test mi lanciano un key error. le soluzioni stampate sono corrette.

cosa posso fare?

C'è una questione simile in hw6 ma non ben capito cosa dovrei fare.
319 views
closed with the note: Benedette sviste

1 Answer

twgever (17470 points)
8 29 105
by (17.5k points)
key error significa che dizionario[stringa1] non esiste. Hai già provato ad analizzare con il debugger e vedere quando ti dà errore?

(la questione simile in hw6 era per un problema relativo alla libreria image del prof, non del programma)
m
massimocoppola (950 points)
2 18 21
by (950 points)
edited by
"key error significa che dizionario[stringa1] non esiste" e a quello c'ero arrivato pure io.

"Hai già provato ad analizzare con il debugger e vedere quando ti dà errore?" ovviamente..

l'errore non me lo lancia nel debugger ma solo nei test.

ho modficato stringa1 in una tupla. stampa sempre le soluzioni corrette: {("vendita diamanti rubati stanotte ecc.

ma ora nell' unittest vedo:

che le clues che io passo come: [("la",), ("bocca",), ("sollevo,")]  sono diventate: [("l",), ("a",), (" ",), ("b",), ecc.]
twgever (17470 points)
8 29 105
by (17.5k points)
tranquillamente, non ho intenzione di sottovalutare le tue capacità, però per analizzare un problema devo accertarmi che tu abbia fatto tutti i controlli necessari.Penso di aver capito però
twgever (17470 points)
8 29 105
by (17.5k points)
nell'if name==main cosa passi ad ex1? in particolare nei clues? dovresti passare una stringa "la bocca sollevò dal fiero pasto" per l'esempio 1. se è diverso da questo, allora abbiamo identificato l'errore
m
massimocoppola (950 points)
2 18 21
by (950 points)
hai ragione... ora passa tutti i test. nell'

if __name__ == "__main__" :

passavo direttamente una lista. e nei testa passava una stringa...

scusami per il flag. ora lo rimuovo.

grazie per l'aiuto
twgever (17470 points)
8 29 105
by (17.5k points)
Figurati, l'importante è che i malintesi (e soprattuto i problemi negli hw) si risolvano ;)