[Python] Problema irrisolto e richiesta di aiuto

Carpediem i.carpediem a tiscali.it
Mer 7 Feb 2018 00:35:07 CET



Il 06/02/2018 17:42, Daniele Zambelli ha scritto:
> 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
Il suggerimento è talmente logico, che nella sua semplicità appare 
geniale! Grazie
>



Maggiori informazioni sulla lista Python