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 04/02/2018 09:28, Daniele Zambelli ha scritto:
Il 4 febbraio 2018 01:04, Carpediem <i.carped...@tiscali.it> ha scritto:
Buongiorno a tutti. Mi trovo a combattere con una parte di codice che, se
[...]
Ammetto di non avere avuto la pazienza di analizzare tutto il tuo codice.

Vorrei riprendere il consiglio di Marco con un'indicazione pratica.
Ogni riga in meno del programma è una riga in meno in cui si può
trovare un errore. In generale, è più veloce leggere e capire un
programma di 10 righe che uno di duecento...

Tenendo presente il principio: (Di solito) breve è meglio che lungo,
potresti incominciare semplificando l'inizio del programma.

Invece che :

from time import *
numeri_in_gioco = tuple(range(0,37))
#Ora le puntate le cui vincite sono pagate diciassette volte la posta
cavallo_0_1 = [0,1]
cavallo_0_2 = [0,2]
cavallo_0_3 = [0,3]
...
cavallo_27_30 = [27_30]   # ???
cavallo_28_29 = [28,29]
cavallo_28_31 = [28,31]
...
cavallo_33_36 = [33_36]  # ???
cavallo_34_35 = [34,35]
cavallo_35_36 = [35,36]
riepilogo_cavalli = [cavallo_0_1, cavallo_0_2, cavallo_0_3, cavallo_1_2,
...
                      cavallo_34_35, cavallo_35_36]
Potresti scrivere semplicemente:

riepilogo_cavalli = [[0,1], [0,2], [0,3],
...
                      [34,35], [35,36]]

Così magari eviti errori strani come quelli che ho segnato con dei
punti di domanda che suppongo siano degli errori.

Ciao


_______________________________________________
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python

Rispondere a