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

Do you need help?

Test programma *Risolto*

P
Pasqualino96 (1490 points)
4 23 27
in HW2 obbligatorio by (1.5k points)
edited by
Ciao Ragazzi, ho un disperato bisogno di aiuto!!

Allora, il mio problema è questo: sono riuscito a creare finalmente un programma di scarabeo per l'HW2 funzionante in tutti i casi (ho testato manualmente i casi importando le liste di test a mano dal file json del prof) però non riesco a fargli passare i test, non capisco esattamente cosa vuole. Potreste darmi una mano a risolvere sta cosa? Non vorrei ritrovarmi con un programma che non è stato valutato per sta cosa.

grazie
594 views

6 Answers

Fabioerpini (7970 points)
6 10 27
by (8.0k points)
Ciao, la funzione ex1 deve restituire la lista di punteggi finale. Ricorda che deve essere una lista di valori interi
P
Pasqualino96 (1490 points)
4 23 27
by (1.5k points)
Si, la funzione restituisce i valori finali corretti, però non riesco a capire come far passare i test del prof al programma. Ad esempio, in questo momento da pytest mi da come errore "AssertionError", ma non riesco a correggerlo
a
alessandro.bellia (930 points)
0 2 12
by (930 points)
Ti confermo che non stai restituendo una LISTA di interi.
AdSum (16290 points)
9 20 134
by (16.3k points)
AssertionError te lo da quando dai i valori errati ma nella forma corretta. Nel suo caso sta restituendo una lista ma con i valori errati.
a
alessandro.bellia (930 points)
0 2 12
by (930 points)
In realtà te lo dà anche quando dai valori giusti nella forma errata (esempio, degli interi non in lista), l'ho appena provato a ricreare sul mio e mi ha dato lo stesso errore.

l'errore cita
AssertionError: <class 'tuple'> != <class 'list'> : The output type should be: list

e penso sia lo stesso di OP
AdSum (16290 points)
9 20 134
by (16.3k points)
Strano, in quel caso dovrebbe essere ValueError
P
Pasqualino96 (1490 points)
4 23 27
by (1.5k points)
Si, è lo stesso errore. Ho appena provato a modificare il programma e adesso ne passa 8 su 17
a
alessandro.bellia (930 points)
0 2 12
by (930 points)
edited by
potrebbe essere che tu non stia restituendo una lista, assicurati di mettere le parentesi giuste sul retrun :]
M
MatteoRinaldi (440 points)
0 0 4
by (440 points)
Non è semplice capire quale sia il problema dalla domanda. In ogni caso, sei certo che il risultato che torni sia una lista di interi?
P
Pasqualino96 (1490 points)
4 23 27
by (1.5k points)
Io il return ho semplicemente scritto cosi:

return punti1 - dim_hand1 * 3, punti2 - dim_hand2 * 3, punti3 - dim_hand3 * 3, punti4 - dim_hand4 * 3

e lui alla fine dell'esecuzione ritorna i valori giusti. Per quanto ho capito da quello che mi avete scritto dovrebbe ritornare una lista con all'interno i risultati? Se si, come posso codificare sta cosa?
C
ChristianSt (1790 points)
3 9 25
by (1.8k points)
devi mettere i risultati tra parentesi quadrate return [*operazioni che hai descritto sopra*]
AdSum (16290 points)
9 20 134
by (16.3k points)
edited by

Buongiorno, senza specificare il problema non è possibile aiutarti. Non ti passa i test sul tuo pc (test.py) o  i test una volta caricati su q2a? Che tipo di errore ti da? Timeout, valueerror ecc? (se non sei sicuro, rispondimi copiando il "corpo" dell'errore, dovrebbe bastare per capire il problema)

EDIT:

Leggendo la tua risposta ad un altro commento ho compreso che il tuo problema è il valore restituito. Tu resistuisci si una lista con i punteggi finali, ma questi ultimi non sono corretti.

EDIT 2:

Prova a cambiare

return punti1 - dim_hand1 * 3, punti2 - dim_hand2 * 3, punti3 - dim_hand3 * 3, punti4 - dim_hand4 * 3

con

return [punti1 - dim_hand1 * 3, punti2 - dim_hand2 * 3, punti3 - dim_hand3 * 3, punti4 - dim_hand4 * 3]

senza le [ ] la trasforma in una tupla, quando invece è richiesta una lista

andrea.sterbini (207920 points)
749 1267 2373
by (208k points)
Se è quello che hai consegnato ti faccio una domanda: perchè usi assert male e generi tu stesso delle eccezioni?
P
Pasqualino96 (1490 points)
4 23 27
by (1.5k points)
Pensavo fossero necessarie per poter passare il test, poi in secondo momento ho capito che si trattava di un errore al ritorno della funzione che richiedeva di passare i risultati in una lista
Loriv3 (7970 points)
13 21 84
by (8.0k points)
Hai restituito il tipo di valore sbagliato, controllando ho visto che ti hanno dato in molti lo stesso consiglio
P
Pasqualino96 (1490 points)
4 23 27
by (1.5k points)
Infatti ho risolto così e sono riuscito a consegnare qualcosa