[Python] Problema irrisolto e richiesta di aiuto
Carpediem
i.carpediem a tiscali.it
Dom 4 Feb 2018 16:01:17 CET
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.carpediem a 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
>
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20180204/f29d78c4/attachment-0001.html>
Maggiori informazioni sulla lista
Python