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.

program01 - AssertionError (None != [...])

A
AndreaTeofilo (310 points)
1 4 10
in Es1 by (310 points)
closed by

Salve a tutti! ho notato che consegnando più e più volte il program 01 sul terminale mi vengono restituiti i valori dell'intricatezza e del tempo di esecuzione, ma per quanto riguarda i test superati siamo a 0 nonostante io abbia provato il programma con il grader01 tantissime volte e funzioni correttamente anche con i numeri grandi.  

Qualcuno sa gentilmente dirmi di cosa si tratta e come risolvere?

L'errore che appare è il seguente:

Sun Oct 22 16:12:56 CEST 2017 python -B -u ./grade01.py [293, 113] [70, 154, 128] test_program01_3 lista di valori piccoli max 3 cifre error -> AssertionError when input=[70, 330, 293, 154, 128, 113, 178] None != [293, 113] <- correct return value [12347, 13127, 13751, 14407, 24019] [12369, 13202, 13838, 14421, 24035] test_program01_5 lista di valori tutti di 5 cifre error -> AssertionError when input=[12347, 12369, 13125, 13127, 13202, 13750, 13751, 13838, 14406, 14407, 14421, 24010, 24019, 24035, 26364] None != [12347, 13127, 13751, 14407, 24019] <- correct return value [1234613, 1234687, 1234837] [1234579, 1234641, 1234793, 1234847] test_program01_7 lista di valori tutti di 7 cifre

 error -> AssertionError when input=[1234579, 1234604, 1234613, 1234641, 1234684, 1234687, 1234793, 1234836, 1234837, 1234847] None != [1234613, 1234687, 1234837] <- correct return value [] [3125] test_program01_9 lista di valori di max 9 cifre error -> AssertionError when input=[858659, 8640829, 777923, 178433279, 148035889, 3125] None != [] <- correct return value [100000463, 100000687] [100000431, 100000675, 100001111] test_program01_9_2 lista di valori tutti da 9 cifre error -> AssertionError when input=[100000300, 100000431, 100000463, 100000647, 100000675, 100000687, 100001025, 100001111] None != [100000463, 100000687] <- correct return value [26237927] [] test_program01_10 lista di valori di max 10 cifre con divisori grandi error -> AssertionError when input=[340887623, 26237927, 2491, 777923, 5311430407, 6437635961, 82284023] None != [26237927] <- correct return value [10000000469, 10000000711] [10000000116, 10000000548, 10000000768] test_program01_11 lista di valori tutti di 11 cifre error -> AssertionError when input=[10000000116, 10000000431, 10000000469, 10000000548, 10000000697, 10000000711, 10000000768, 10000000924] None != [10000000469, 10000000711] <- correct return value Total score: 0.0

1.1k views
closed with the note: consegna passata

5 Answers

Auron (15880 points)
50 126 194
by (15.9k points)
Ciao Andrea, sei sicuro di ritornare la lista di numeri primi? Da quello che c'è scritto sembra che tu non ritorni niente o, se la ritorni, che la lista sia vuota :D
Controlla se hai un 'return listaprimi' e se valorizzi bene questa lista :D

Per il discorso grader... sei sicuro di aver scaricato tra ieri e oggi il grader e il testlib aggiornati? Se lanci il grader di prima è normale che lui ti dia tutti ok :)
francesco.dev (33560 points)
21 51 129
by (33.6k points)
Qualcuno? Io penso siano decisamente più di uno.
E mi sembra una stupidaggine comportarsi così.
Spero che questo messaggi arrivi ai diretti interessati: il docente ha chiaramente detto di smetterla con questa inutile downvote war. Quindi suvvia ;)
Auron (15880 points)
50 126 194
by (15.9k points)
Ma più che altro perché siamo all'università, non all'asilo...
francesco.dev (33560 points)
21 51 129
by (33.6k points)
Esattamente. Però qualcuno ancora non lo ha capito.
Se vai a vedere il mio profilo, ogni giorno ho +10 voti negativi hahahahahahaha
Senza parole.
Auron (15880 points)
50 126 194
by (15.9k points)
Ammazza ahahahha
francesco.dev (33560 points)
21 51 129
by (33.6k points)
Purtroppo è così.
Io ora vedo come vanno le cose, se continuano con questi giochetti lo farò presente.
Tanto tutto è memorizzato.
Jury Francia (7520 points)
23 76 100
by (7.5k points)
credo che sia dovuto al fatto che la tua funzione torna None. Con i grader ti segna gli ok sui test?
francesco.dev (33560 points)
21 51 129
by (33.6k points)
Forse non torna la lista dei primi, oppure ritorna qualcosa di diverso. Aspettiamo per maggiori informazioni
LeonardoEmili (35740 points)
13 65 155
by (35.7k points)

Ciao!

Sei sicuro di non visualizzare i valori corretti magari attraverso una print? O altrimenti potrebbe darsi che tu stia modificando un'altra lista, non la "ls" passata dalla funzione modi(), devi lavorare su quella. Dall'output si evince chiaramente che la lista originale non viene toccata ,infatti i valori visualizzati nel log sono gli stessi che tu dai alla funzione in input!

Prova a modificare la lista stessa nella funzione modi() o altrimenti tramite un'altra funzione e returnando il risultato!

Facci sapere!

Leonardo Emili

M
Miriam (170 points)
0 1 3
by (170 points)
Ciao, scusate la domanda molto stupida, io ho fatto due funzioni, per i numeri primi e per quelle da eliminare, ma se gli do lo stesso nome alla lista e quindi modifico l'originale, il programma mi fa tornare solo il risultato della seconda funzione, con quelli da eliminare.

Quindi facendo una nuova lista per i primi, mi tornano entrambe ma questo non funziona per gli altri test !

Che cosa sbaglio??
Help!
francesco.dev (33560 points)
21 51 129
by (33.6k points)
Ciao Andrea!

Secondo me il problema principale è che non modifichi realmente la lista iniziale!

Il secondo problema può essere anche che effettivamente non ritorni dalla funzione modi la lista contenente i numeri primi.

Quindi ti consiglio vivamente di controllare se la modifica viene fatta realmente e se la lista dei numeri primi contiene realmente i numeri primi.

Come sempre consiglio di mettere una serie di print (stampe) strategiche sia all'interno della funzione che fuori di questa.
Così potrai verificare il tutto e restringere la zona in cui si verificano problemi.

Aspettiamo tue notizie,
- Francesco Pio Scognamiglio
francesco.dev (33560 points)
21 51 129
by (33.6k points)
Ancora non avete finito la downvote war?
Eppure ero stato chiaro. Inutile fare queste stupidaggini. :)
Simone Fiorini (1500 points)
2 6 12
by (1.5k points)

Ciao Andrea,  

Il tuo algoritmo praticamente in realtà è giusto, eccetto una piccola, semplice cosa:

Leggendo questa "notifica di errore", in quanto io sembra di aver capito, nel tuo algoritmo dapprima di passare la lista definitivamente alla funzione mediante il parametro ls, essa dovrebbe essere modificata in maniera distruttiva cosa che invece per il grader legge solo l'elemento iniziale, ovvero quello prima di essere passato nella funzione. 

Tienici aggiornati sui tuoi sviluppi. Forza e coraggio! winkyes

Simone Fiorini