'int' object is not reversible quando avvio il grader del primo esercizio

M
Marco_ (400 points)
1 5 10
asked Oct 23, 2017 in Es1 by Marco_ (400 points)
closed Nov 4, 2017 by andrea.sterbini
Salve a tutti. Quando avvio il grader del primo esercizio mi viene dato come errore il messaggio " 'int' object is not reversible ". Ho cercato di capire cosa chiedesse, ho anche cercato in rete, ma non riesco a trovare nulla.

test_program01_3 lista di valori piccoli max 3 cifre

error -> TypeError

'int' object is not reversible

test_program01_5 lista di valori tutti di 5 cifre

error -> TypeError

'int' object is not reversible

test_program01_7 lista di valori tutti di 7 cifre

error -> TypeError

'int' object is not reversible

test_program01_9 lista di valori di max 9 cifre

error -> TypeError

'int' object is not reversible

test_program01_9_2 lista di valori tutti da 9 cifre

error -> TypeError

'int' object is not reversible

test_program01_10 lista di valori di max 10 cifre con divisori grandi

error -> TypeError

'int' object is not reversible

test_program01_11 lista di valori tutti di 11 cifre

error -> TypeError

'int' object is not reversible

Non riesco neanche a constatare se il problema riguarda la parte di programma di trovare i numeri primi, o la parte dei divisori propri.
315 views
closed with note: deadline expired

2 Answers

Jury Francia (7520 points)
18 76 100
answered Oct 23, 2017 by Jury Francia (7,520 points)
come return cosa ritorna la funzione?
M
Marco_ (400 points)
1 5 10
commented Oct 23, 2017 by Marco_ (400 points)
La lista secondaria con i numeri primi presi da ls.
Jury Francia (7520 points)
18 76 100
commented Oct 23, 2017 by Jury Francia (7,520 points)
mhm, si in effetti su internet questo errore non si trova. Magari ci può aiutare il prof.
Esegui qualche conversione con int?
Jury Francia (7520 points)
18 76 100
commented Oct 23, 2017 by Jury Francia (7,520 points)
M
Marco_ (400 points)
1 5 10
commented Oct 23, 2017 by Marco_ (400 points)
In effetti prima eseguivo delle conversioni con int, usando però un altro metodo per calcolare i fattori. Ora invece ho cambiato completamente metodo e di conversioni non ce ne sono per tutto il programma. Con il link che hai inviato invece perdonami, ma non ci ho capito nulla. Non capisco neanche il problema di questo tizio.
Jury Francia (7520 points)
18 76 100
commented Oct 23, 2017 by Jury Francia (7,520 points)
Su quel link sbagliava delle parentesi, metteva le graffe al posto delle quadre da quanto ho capito, ma non so se sia lo stesso problema. Hai provato ad eseguire il programma con valori passati direttamente senza usare il grader? magari controllando un pezzo alla volta il codice e vedendo dove il problema si presenta.
francesco.dev (33560 points)
14 51 129
answered Oct 23, 2017 by francesco.dev (33,560 points)
Ciao!

Il problema è sicuramente legato a qualche variabile intera o valore intero.

Ti chiedo:
- Per caso usi qualche tipo di conversione in intero? Cercando ad esempio di convertire il valore di una stringa in int;
- Sicuro di non svolgere operazioni matematiche tra due tipi diversi??

Infine fammi sapere su che istruzione ti dà il seguente errore, cosicché possa aiutarti fino a risolvere tale problema.
Ti basterà eseguire il codice sull'IDE Spyder per avere il tipo di problema e la riga di codice in cui si è verificato.

Fammi sapere,
- Francesco Pio Scognamiglio
M
Marco_ (400 points)
1 5 10
commented Oct 23, 2017 by Marco_ (400 points)
Rispondo qui prendendo in considerazione anche l'ultima risposta di Jury Francia. Per controllare pezzo per pezzo il codice devo eseguire il debug? Oppure eseguire l'opzione Run su ogni singola riga utilizzando Run Cell and Advance?  Devo mettere dei vari Print nel codice?
francesco.dev (33560 points)
14 51 129
commented Oct 23, 2017 by francesco.dev (33,560 points)
Prova direttamente ad eseguire il codice, cliccando sul triangolo verde in alto volto verso destra, se non ti dà errore allora ti conviene mettere delle stampe laddove usi chiaramente degli interi o delle conversioni.
M
Marco_ (400 points)
1 5 10
commented Oct 23, 2017 by Marco_ (400 points)
Ok allora questo è molto strano....non mi stampa neanche un print. Ne ho messo uno anche esattamente dopo il def, facendogli stampare un semplice commento. Non stampa neanche quello...
francesco.dev (33560 points)
14 51 129
commented Oct 23, 2017 by francesco.dev (33,560 points)
Aspetta, hai ricordato di chiamare tale funzione? Altrimenti il codice della funzione non verrà mai eseguito.
Fuori dalla funzione devi richiamarla seguendo tale sintassi:
modi(lista, k)
Definendo la riga prima cosa sia inserito in lista e che valore abbia k.
Questo solo per test! Quando dovrai consegnare il codice cancellerai queste istruzioni
M
Marco_ (400 points)
1 5 10
commented Oct 23, 2017 by Marco_ (400 points)
Ok a quanto pare il problema parte quando faccio scorrere la lista al contrario usando Reversed nel ciclo For
francesco.dev (33560 points)
14 51 129
commented Oct 23, 2017 by francesco.dev (33,560 points)
Ed in particolare? Puoi entrare nel dettaglio? Perché qui si parla di un errore alquanto complesso quanto forse banale.
Innanzitutto controlla i valori interi presenti, le conversioni fatte, le lunghezze (len) calcolate. C'è qualcosa che non va sicuramente, forse sarà una svista ma qualcosa c'è
M
Marco_ (400 points)
1 5 10
commented Oct 23, 2017 by Marco_ (400 points)
Ok ho provato a risolvere, ho tolto una funzione chiamata continue e l'ho sostituita con break ( errore mio scusate ), ed ora il problema si è spostato su Assertion error. Qualcosa non funziona con la parte di programma con il check dei numeri primi. Mi da questo errore:
test_program01_3               lista di valori piccoli max 3 cifre
        error -> AssertionError
                when input=[70, 330, 293, 154, 128, 113, 178]
                [4, 5, 5] != [293, 113] <- correct return value
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]
                [4, 5, 5, 7, 7, 7, 7, 8, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14] != [12347, 13127, 13751, 14407, 24019] <- correct return value
test_program01_7               lista di valori tutti di 7 cifre
        error -> AssertionError
                when input=[1234579, 1234604, 1234613, 1234641, 1234684, 1234687, 1234793, 1234836, 1234837, 1234847]
                [4, 5, 5, 7, 7, 7, 7, 8] != [1234613, 1234687, 1234837] <- correct return value
test_program01_9               lista di valori di max 9 cifre
        error -> AssertionError
                when input=[858659, 8640829, 777923, 178433279, 148035889, 3125]
                [4, 5, 5] != [] <- correct return value
test_program01_9_2             lista di valori tutti da 9 cifre
        error -> AssertionError
                when input=[100000300, 100000431, 100000463, 100000647, 100000675, 100000687, 100001025, 100001111]
                [4, 5, 5, 7, 7, 7, 7] != [100000463, 100000687] <- correct return value
test_program01_10              lista di valori di max 10 cifre con divisori grandi
        error -> AssertionError
                when input=[340887623, 26237927, 2491, 777923, 5311430407, 6437635961, 82284023]
                [4, 5, 5] != [26237927] <- correct return value
test_program01_11              lista di valori tutti di 11 cifre
        error -> AssertionError
                when input=[10000000116, 10000000431, 10000000469, 10000000548, 10000000697, 10000000711, 10000000768, 10000000924]
                [4, 5, 5, 7, 7, 7, 7] != [10000000469, 10000000711]     <- correct return value
Total score: 0.0
Premetto che sto cercando di capire come mai quei strani valori, eppure la parte con i numeri primi ero sicuro di averla fatta per bene  (headbang)
francesco.dev (33560 points)
14 51 129
commented Oct 23, 2017 by francesco.dev (33,560 points)
Quella dei numeri primi l'avrai fatta per bene, quella che manca qui è la parte in cui vedi quanti divisori hai per ogni numero!
Attenzione al ragionamento matematico che hai adoperato
M
Marco_ (400 points)
1 5 10
commented Oct 23, 2017 by Marco_ (400 points)
edited Oct 23, 2017 by Marco_
Perdonami ma non ho capito.. La lista che contiene quei valori è la lista secondaria dei numeri primi ( che non sono i numeri primi di ls però, a quanto pare ),  come mai mi dici che la parte che manca è quella dei divisori per ogni numero?
up