[Python] Problema irrisolto e richiesta di aiuto

Daniele Zambelli daniele.zambelli a gmail.com
Mar 6 Feb 2018 17:42:21 CET


Il 4 febbraio 2018 16:01, Carpediem <i.carpediem a tiscali.it> ha scritto:
> Un ringraziamento per Daniele e tutta la mia disponibilità a seguire il
> consiglio di Marco.
>
> Intanto grazie per avermi fatto notare gli errori che sono stati evidenziati
> con i punti interrogativi. Dopodiché, ho continuato col provare a cercare
> autonomamente una soluzione. Pensavo di esserci riuscito ma ancora una volta
> il risultato non è stato quello che mi aspettavo anche se apparentemente è
> meno disastroso del precedente tentativo: Ho accorciato il codice per
> facilitarne la lettura. Il risultato che mi attendevo alla fine del ciclo
> for, una volta inserito il numero 2 in input, era la lista ritardo_cavalli
> così composta: [1, 0, 0, 1, 0, 1, 1, 0] invece il risultato che ottengo è
> questo:
>
> [1, 0, 1, 0, 1, 0, 0, 1].
>
> Perché? il mio dubbio è che quando chiedo di incrementare il valore indicato
> nel rispettivo indice della lista, in realtà, nel corso del ciclo, viene
> incrementato l'indice stesso. Non comprendo l'errore. Il codice si conclude
> senza segnalazioni ma il risultato non è quello che volevo. Riuscite a
> spiegarmi l’errore? Vi ringrazio. Questo il codice all'osso:
>
> cavallo_0_1 = [0, 1]
> cavallo_0_2 = [0, 2]
> cavallo_0_3 = [0, 3]
> cavallo_1_2 = [1, 2]
> cavallo_1_4 = [1, 4]
> cavallo_2_3 = [2, 3]
> cavallo_2_5 = [2, 5]
> cavallo_3_6 = [3, 6]
> riepilogo_cavalli = [cavallo_0_1, cavallo_0_2, cavallo_0_3, cavallo_1_2,
> cavallo_1_4, cavallo_2_3, cavallo_2_5,
>                      cavallo_3_6,]
> ritardo_cavalli = [0, 0, 0, 0, 0, 0, 0, 0]
> print()
> numero_uscito = int(input("inserisci il numero uscito "))
> print()
> lunghezza_ritardo_cavalli = len(ritardo_cavalli)
> for valore_indice in range(lunghezza_ritardo_cavalli):
>     if numero_uscito not in riepilogo_cavalli[valore_indice]:
>         ritardo_cavalli[valore_indice] += 1
>     else:
>         ritardo_cavalli[valore_indice] = 0

In casi analoghi metto un print all'interno del ciclo e vado a spiare
cosa succede alle variabili coinvolte. Questo di solito aiuta.

Ciao

-- 

Daniele

www.fugamatematica.blogspot.com

    giusto!
    nel verso
    forse è perché non guardiamo le cose
    Quando non ci capiamo,


Maggiori informazioni sulla lista Python