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.

KeyError solo durante esecuzione di unit test

sinisimattia (870 points)
0 3 8
in HW6 obbligatorio by (870 points)
Buon pomeriggio a tutti,

sto avendo problemi con i test, in particolare con i dizionari.

Se eseguo il mio programma normalmente l'utilizzo di una tupla come chiave del dizionario non da problemi, quando eseguo gli unit test, invece, mi da un KeyError

Per caso qualcuno sa se questo è un problema con la mia configurazione?

Grazie in anticipo
302 views

3 Answers

andrea_25 (6070 points)
2 2 24
by (6.1k points)
Probabilmente il problema è dovuto al fatto che stai cercando di accedere ad una chiave che non si trova nel dizionario quando fai i test.

Controlla bene la logica dei vari passaggi del flusso del tuo programma.
sinisimattia (870 points)
0 3 8
by (870 points)
Assolutamente, la cosa strana è che se eseguo il programma normalmente questo errore non si presenta. è esclusivo ai test
andrea_25 (6070 points)
2 2 24
by (6.1k points)
E' molto strano, perché anche io uso dei dizionari che hanno tuple come chiavi nel mio programma e non mi dà nessun problema quando eseguo i test tramite anaconda prompt o direttamente da spyder
T
Tobia (1580 points)
1 12 19
by (1.6k points)
ti amo pure a me fa questa cosa, ora che so che non sono l'unico smetto di cercare di risolvere perchè so che il problema non sono io
T
Tobia (1580 points)
1 12 19
by (1.6k points)
Sono riuscito a risolvere grazie all'aiuto di un altro ragazzo; il problema era che avevo dato come argomento opzionale alla funzione una lista vuota, e quindi sballava i test, cambiato quello ora va
andrea.sterbini (207920 points)
750 1267 2373
by (208k points)
Un consiglio: NON usate parametri opzionali con valori MUTABILI (liste, set, dizionari) .... vi generano errori difficili da individuare perchè quel valore di inizializzazione NON viene ricreato ad ogni chiamata ma viene creato una volta per tutte e crea effetti collaterali tra le diverse chiamate
m
massimocoppola (950 points)
2 18 21
by (950 points)
#RIPOSTO LA QUESTIONE IN HOMEWORK8

Mi trovo anche io nella stessa situazione, credo.

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?