Ormai siamo agli sgoccioli, ma non sono ancora riuscito a risolvere il problema del mio programma (hm 2.2).
Il fatto è che il problema che mi crea è anomalo, e oltretutto si presenta in maniera apparentemente casuale: il mio grader mi restituisce 4 sì e 4 no. Tra l'altro, nemmeno in ordine, visto che a darmi l'ok sono: 1,2,3 e il 6; ciò non mi ha permesso di ipotizzare che il problema potesse riguardare l'input insi quando non era della classica forma {} ma con una "set comprehension", poiché non c'è una costanza di comportamento in questo senso. (non so se sono stato chiaro)
Riassumo velocemente l'algoritmo in pseudocodice: è composto da cicli annidati per ottenere da ciascun elemento dell'insi la lista dei compiti che devono essere fatti prima di quello, attraverso una variabile ausiliaria temp che cambia valore ad ogni iterazione e lo aggiunge all'attributo della chiave in questione.
Il problema iniziale era un "KeyError", che poi ho scoperto dipendere da "un'accumulazione" di stringhe nella variabile temp. Ovvero: invece di sostituire il valore, sembra aggiungerlo, ma dopo svariate ore ho capito di non essere in grado di rintracciare il punto in cui succede (ma solo quello in cui si presenta l'errore per la prima volta), nonostante le poche righe di codice.
Per evitare l'errore, ho utilizzato un "try-except", e ciò mi ha "salvato" un nuovo test (il settimo mi ha iniziato a dare l'ok, anche se dopo qualche altro cambiamento minimale di cui non mi sono accorto, è tornato a non funzionare), ma per il resto ha semplicemente sostituito il problema: da un KeyError sono passato ad un AssertionError, poiché ovviamente mettendo un break come except qualche elemento mi salta.
Qualcuno sa dirmi da cosa può dipendere questo errore? Ad esempio,si notano delle costanti in queste poche e disordinate informazioni che ho riportato su cui posso lavorare per smascherare l'errore? Perché succede solo con quei determinati test? Come possono accumularsi dei valori in una variabile ausiliaria se non ho mai utilizzato la concatenazione ma solo l'assegnazione?
Il fatto è che il problema che mi crea è anomalo, e oltretutto si presenta in maniera apparentemente casuale: il mio grader mi restituisce 4 sì e 4 no. Tra l'altro, nemmeno in ordine, visto che a darmi l'ok sono: 1,2,3 e il 6; ciò non mi ha permesso di ipotizzare che il problema potesse riguardare l'input insi quando non era della classica forma {} ma con una "set comprehension", poiché non c'è una costanza di comportamento in questo senso. (non so se sono stato chiaro)
Riassumo velocemente l'algoritmo in pseudocodice: è composto da cicli annidati per ottenere da ciascun elemento dell'insi la lista dei compiti che devono essere fatti prima di quello, attraverso una variabile ausiliaria temp che cambia valore ad ogni iterazione e lo aggiunge all'attributo della chiave in questione.
Il problema iniziale era un "KeyError", che poi ho scoperto dipendere da "un'accumulazione" di stringhe nella variabile temp. Ovvero: invece di sostituire il valore, sembra aggiungerlo, ma dopo svariate ore ho capito di non essere in grado di rintracciare il punto in cui succede (ma solo quello in cui si presenta l'errore per la prima volta), nonostante le poche righe di codice.
Per evitare l'errore, ho utilizzato un "try-except", e ciò mi ha "salvato" un nuovo test (il settimo mi ha iniziato a dare l'ok, anche se dopo qualche altro cambiamento minimale di cui non mi sono accorto, è tornato a non funzionare), ma per il resto ha semplicemente sostituito il problema: da un KeyError sono passato ad un AssertionError, poiché ovviamente mettendo un break come except qualche elemento mi salta.
Qualcuno sa dirmi da cosa può dipendere questo errore? Ad esempio,si notano delle costanti in queste poche e disordinate informazioni che ho riportato su cui posso lavorare per smascherare l'errore? Perché succede solo con quei determinati test? Come possono accumularsi dei valori in una variabile ausiliaria se non ho mai utilizzato la concatenazione ma solo l'assegnazione?