Problema con il grader HomeWork (es 1, output errato)

S
Simone99_ (1180 points)
13 50 59
asked Oct 21, 2017 in Es1 by Simone99_ (1,180 points)
recategorized Oct 21, 2017 by andrea.sterbini
salve a tutti, ho caricato l'esercizio 1 del primo homework ma mi da un errore, mi spiego:

nel file "grade01" da scaricare mi fa vedere più esempi con i rispettivi output, e ho effettivamente verificato che il programma funziona e da come risultato gli stessi( anche nei tempi prestabiliti).

quando però , dopo averlo caricato, nella parte http://q2a.di.uniroma1.it/visualize  mi dice che gli stessi esempi , che prima avevo verificato essere corretti, ora sono sbagliati , in particolare mi "AssertionError" , allego uno screen per farvi capire meglio:

https://imgur.com/a/vvss9

tra l'altro come potete notare, in "when input" , il grader inserisci solo la lista e non anche "k", e quindi mi sembra scontato il fatto che il mio risultato sia diverso dal suo non svolgendo una parte di programma(quella dove deve verificare se hanno lo stesso numero di divisori propri)

Qualche consiglio o soluzione? grazie mille!

*EDIT: da quanto ho capito l'unico output deve essere la lista con i numeri pari e non anche la lista con  k divisori propri, aggiusto il tutto e vi faccio sapere
270 views

3 Answers

Best answer
giorgio.belli (10140 points)
17 74 98
answered Oct 21, 2017 by giorgio.belli (10,140 points)
selected Oct 21, 2017 by andrea.sterbini
Ciao Simone,

Da come mi sembra di capire nell'immagine postata il tuo problema sta tutto nel return,

Ricorda che il programma deve dare come output una lista del genere [num1,num2,..,numN] e modificare (dunque senza ritornare) la lista passata come parametro (ls).

Occhio dunque a cosa far ritornare e a cosa invece modificare a livello "globale".

Se non sono stato chiaro chiedi pure :D
S
Simone99_ (1180 points)
13 50 59
commented Oct 21, 2017 by Simone99_ (1,180 points)
perfetto , era quello che volevo sentire :D, quindi solo un output (la lista con i numeri primi) , giusto?
giorgio.belli (10140 points)
17 74 98
commented Oct 21, 2017 by giorgio.belli (10,140 points)
esattamente!! Buon lavoro
S
Simone99_ (1180 points)
13 50 59
commented Oct 21, 2017 by Simone99_ (1,180 points)
scusami ma sarò io che sbaglio qualcosa, ho corretto tutto quanto, ho messo solo un return (quello della lista con i numeri primi), carico il tutto, e ora il grade mi dice che il mio output è diverso dal suo , il problema è che l'output che lui compare è sbagliato :

ex:

when input=[70, 330, 293, 154, 128, 113, 178]
        [70, 330, 293, 154, 128, 113, 178] != [70, 154, 128]    <- correct ls value

ma in realtà se io eseguo la stessa lista sulla mia macchina con la mia shell l'output è : [293, 113] , ed è giusto, sono questi i due unici numeri primi e non  "[70, 154, 128]" come mi dice il grade .
Ditemi per favore che è un bud del grade, perchè io sto impazzendo
LeonardoEmili (35740 points)
11 65 155
answered Oct 21, 2017 by LeonardoEmili (35,740 points)

Buongiorno!

Da quanto ho capito il grader che esegui tu in locale ti da i risultati corretti mentre caricandoli su Q2A non ti ritorna gli stessi risultati.

  1. Allora ti chiedo, hai tolto eventuali input output dal tuo programma del tipo print() oppure input() che magari utilizzavi per verificare i risultati?
  2. Hai scaricato e provato il nuovo grader fornito dal professore? Lo puoi scaricare dalla pagina relativa al HW1 poiché potrebbe darsi che il tuo programma passi i test precedenti ma non i nuovi introdotti tra ieri e oggi dal professore.
  3. Tieni conto che il professore sta lavorando su questo e potrebbe trattarsi solo di un bug relativo alla sezione visualizza, se vedi questo è stato già segnalato in una precedente domanda sul forum.
In ogni caso aspettiamo delucidazioni dal professore perché potrebbe anche trattarsi di un problema legato ai tuoi dati, infatti se leggi altri post precedenti vedrai che alcuni utenti lamentavano problemi di accesso/visualizzazione degli HW perché non avevano completato tutti i campi nella sezione Profilo oppure per qualche errore del DB del server legato all'utente stesso.
.
Spero di averti aiutato, 
ti auguro una buona giornata!
.
Leonardo Emili
S
Simone99_ (1180 points)
13 50 59
commented Oct 21, 2017 by Simone99_ (1,180 points)
da quanto ho capito l'unico output del programma deve essere la lista con i numeri pari, giusto?
m
moin.uddin (820 points)
3 10 19
commented Oct 21, 2017 by moin.uddin (820 points)
ciao simone,

devi avere due liste :
1) lista con i numeri primi
2) lista con i numeri che hanno divisori uguale a  k volte
S
Simone99_ (1180 points)
13 50 59
commented Oct 21, 2017 by Simone99_ (1,180 points)
edited Oct 21, 2017 by Simone99_
si ma di queste liste tutte e due ne diventano output (in pratica , le vediamo tutte e due alla fine di tutta l'operazione? se per esempio provate a vedere dall'immagine che ho linkato, notate come il grade vuole che l'unico output sia solo la lista con i numeri pari, e in effetti rileggendo la consegna sembra che sia così
francesco.dev (33560 points)
14 51 129
answered Oct 21, 2017 by francesco.dev (33,560 points)

Ciao Simone!

Ho letto tra i commenti che parli di lista di numeri pari, ricorda che invece devi restituire unicamente una lista contenente tutti i numeri primi!
Questo perché non abbiamo bisogno di ritornare la lista di partenza visto che la modifichiamo direttamente all'interno della funzione.

Quindi nella funzione ci deve essere un'unica return che restituisce la lista contenente solo ed esclusivamente i numeri primi.

Sperando di averti aiutato,
- Francesco Pio Scognamiglio

S
Simone99_ (1180 points)
13 50 59
commented Oct 21, 2017 by Simone99_ (1,180 points)
si , ho sbagliato a scrivere, intendevo numeri primi, okay ora è tutto più chiaro .
la lista con i numeri primi posso chiamarla come voglio? non ci sono condizioni ?
francesco.dev (33560 points)
14 51 129
commented Oct 21, 2017 by francesco.dev (33,560 points)
La puoi chiamare come preferisci, basta che ritorna come valore della funzione