2018-02-04 16:01 GMT+01:00 Carpediem <i.carped...@tiscali.it>: > 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 >
Il codice fa esattamente quello che gli stai facendo fare. Tu scorri il contenuto della lista dei cavalli che vale questo: [[0, 1], [0, 2], [0, 3], [1, 2], [1, 4], [2, 3], [2, 5], [3, 6]] Inserendo 2 e scorrendo gli 8 elementi di questa lista, incrementi il corrispondente valore di ritarto_cavalli se il cavallo che stai controllando non contiene 2. Degli 8 cavalli, quelli che non hanno il 2 sono il primo (posizione 0), il terzo (2), il quinto (4) e l'ultimo (7). Quindi è corretto che alla fine ritardo_cavalli valga [1, 0, 1, 0, 1, 0, 0, 1] con incrementati gli elementi 0, 2, 4 e 7 e azzerati gli altri quattro. Ciao. Marco.
_______________________________________________ Python mailing list Python@lists.python.it https://lists.python.it/mailman/listinfo/python