Do you need any help?

hw8 nested dictionary: keyerror

m
massimocoppola (950 points)
1 15 20
asked Dec 14, 2020 in HW8 obbligatorio by massimocoppola (950 points)
closed Dec 14, 2020 by andrea.sterbini
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.
146 views
closed with note: Benedette sviste

1 Answer

twgever (15190 points)
7 27 105
answered Dec 14, 2020 by twgever (15,190 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)
1 15 20
commented Dec 14, 2020 by massimocoppola (950 points)
edited Dec 14, 2020 by massimocoppola
"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 (15190 points)
7 27 105
commented Dec 14, 2020 by twgever (15,190 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 (15190 points)
7 27 105
commented Dec 14, 2020 by twgever (15,190 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)
1 15 20
commented Dec 14, 2020 by massimocoppola (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 (15190 points)
7 27 105
commented Dec 14, 2020 by twgever (15,190 points)
Figurati, l'importante è che i malintesi (e soprattuto i problemi negli hw) si risolvano ;)