Re: [Python] Errore di semantica -

2015-06-25 Per discussione Marco Beri
2015-06-25 8:56 GMT+02:00 Carpediem i.carped...@tiscali.it:

 Devo dire che questa lista di pytoniani è sempre più gradevolmente
 sorprendente:-) ...


:-)

Comunque http://itspython.com/

Ciao.
Marco.

-- 
http://beri.it/ - Un blog
http://beri.it/i-miei-libri/ - Qualche libro
http://beri.it/articoli/ - Qualche articolo
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Errore di semantica -

2015-06-25 Per discussione Marco De Paoli
Il giorno 25 giugno 2015 01:23, Marco Beri marcob...@gmail.com ha scritto:

 2015-06-25 1:22 GMT+02:00 Simone Federici s.feder...@gmail.com:

 Ma credo che le parole adatte siano quelle di Gandhi:
 La propensione dell'uomo a ingannare se stesso è immensamente superiore
 alla sua capacità d'ingannare il prossimo.


 Questa è una incredibile perla che non conoscevo.

 Grazie Simone.


+1

Marco
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Errore di semantica -

2015-06-25 Per discussione Carpediem



Il 25/06/2015 01:22, Simone Federici ha scritto:

Non ho mai capito se ci vuol più coraggio a tentare o ad arrendersi.
:-)

Cmq William Blake diceva:
Chi manca di coraggio è esuberante d’astuzia.

Ma credo che le parole adatte siano quelle di Gandhi:
La propensione dell'uomo a ingannare se stesso è immensamente 
superiore alla sua capacità d'ingannare il prossimo.



Devo dire che questa lista di pytoniani è sempre più gradevolmente 
sorprendente:-) ...


___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Errore di semantica -

2015-06-25 Per discussione Carpediem



Il 25/06/2015 01:41, Marco Beri ha scritto:
Io credo che sia giusto provare a scoprire cose nuove. Anche 
combattere contro dei mulini a vento se uno ci crede davvero.


È perfino possibile tentare di quadrare il cerchio, ma solo se non si 
sa che è impossibile.


Quando qualcuno ti rimanda a 
https://it.wikipedia.org/wiki/Quadratura_del_cerchio e tu insisti, 
allora non si tratta più di costanza o coraggio o inventiva o 
quant'altro ma solo di ottusità.


Non me ne voglia (troppo) Carpediem.

Ah, giusto, non avevo postato il link: 
https://en.wikipedia.org/wiki/Gambler's_fallacy 
https://en.wikipedia.org/wiki/Gambler%27s_fallacy


La pagina italiana è meno completa ma comunque contiene la sostanza 
necessaria a comprendere perché è tempo perso provare a battere il 
banco: https://it.wikipedia.org/wiki/Fallacia_dello_scommettitore


Ciao.
Marco.


Ciao Marco, forse, prima che finisca per passare per più scemo di quello 
che sono, è giusto che io chiarisca bene la mia posizione verso questo 
mio esperimento che, in primis, è nato come esercizio alla 
programmazione autoimposto.
La consapevolezza che il banco giochi con la matematica a suo favore, mi 
appartiene. Sono consapevole, quindi, che chi gli giochi contro è in 
svantaggio rispetto alle aspettative di vincita a suo favore. Ne sono 
così convinto, che non ho mai messo piede in vita mia in un casinò nè 
mai una sola moneta nelle varie macchinette per il poker poste ormai in 
moltissimi locali in giro per l'Italia. Fermo restante la premessa, ho 
fatto questo ragionamento: scommettere al tavolo della roulette 
sull'uscita, per esempio, di un numero facente parte della prima 
dozzina, mi concede una possibilità di vincita su tre. Eventuale vincita 
che verrebbe pagata con importo doppio di quello puntato. Ora, è chiaro 
che teoricamente su cento giocate, tutte e cento potrebbero verificarsi 
con l'uscita addirittura dello stesso numero ma chi mai scommetterebbe 
su una ipotesi simile? Nel caso preso in esame (e questo giustifica la 
presenza di liste_in_ritardo) ho immaginato che un giocatore possa 
iniziare a giocare su ogni specifica possibile puntata, solo dopo il 
verificarsi consecutivo di una serie di eventi diversi da quello su cui 
si deciderà solo da un certo punto in poi a scommettere (nel caso, 
poniamo undici ritardi consecutivi). Tutto questo, per tentare di farsi 
aiutare, se non proprio dalla matematica, dalla statistica. dopo 
l'undicesimo ritardo consecutivo sul tipo di scommessa qui ipotizzato, 
ecco che il giocatore punta i suoi primi 10 euro che, poniamo, vengano 
persi. Alla scommessa successiva (con già dodici ritardi) il giocatore 
punterà altri 10 euro. In caso di vincita avrà un saldo attivo di 10 
euro o al contrario, passivo di 20 euro. Alla scommessa successiva, 
ipotizzando una vincita che determini un attivo tra importi scommessi e 
somme incassate, il giocatore dovrebbe puntare 20 euro. Il gioco, così 
facendo, potrebbe andare avanti entro i limiti della puntata massima 
consentita, fino all'ipotesi di 22 ritardi consecutivi su un tipo di 
scommessa che in teoria, prevede il verificarsi dell'evento una volta su 
tre. Credo che questo ragionamento, porti non certo ad avere certezze di 
vincita ma sicuramente a portare le probabilità inizialmente a favore 
del banco, dalla parte del giocatore. Non si tratta quindi di sperare di 
Sbancare ma semplicemente di alzarsi dal tavolo di gioco dopo averci 
passato un po' di tempo e magari con poco più di un centinaio di euro in 
tasca rispetto a quelli con cui ci si è oresentati al tavolo da gioco. 
Ho già fatto molti tentativi che comunque, escludono ipotesi di 
scommesse su eventi sempre più improbabili dal verificarsi (parlo delle 
terzine e dei numeri singoli estratti) e ti assicuro, che i risultati 
ottenuti sono stati molto incoraggianti. L'utilizzo di un programma, 
conto possa aiutarmi a perfezionare la tecnica. Dopodichè, saprò dirti 
meglio; pronto anche a definire me, io stesso, un ottuso. Per ora, mi 
definisco semplicemente un testardo che prima di decidere di buttare 
anche solo dieci euro al gioco, ci pensa 100 volte.
Insomma, sono consapevole che anche il più preciso dei pi non potrà mai 
determinare l'esatta riuscita del calcolo dell'area del cerchio ma il 
mio tentativo, è solo quello di avvicinarmici il più possibile. Tutto qui.

Grazie per i link che hai postato.
A presto

___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Errore di semantica -

2015-06-25 Per discussione Diego Barrera

Il 25/06/2015 01:22, Simone Federici ha scritto:


Ma credo che le parole adatte siano quelle di Gandhi:
La propensione dell'uomo a ingannare se stesso è immensamente 
superiore alla sua capacità d'ingannare il prossimo.



Sarebbe interessante sapere cosa pensava invece della donna :D
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Errore di semantica -

2015-06-25 Per discussione Simone Federici
Diego Barrera:

 Sarebbe interessante sapere cosa pensava invece della donna :D


Da quel poco che so su di lui, la parola Uomo qui presente è usata per
essere umano. Quindi nessuna differenza per la donna in questo frangente.
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Errore di semantica -

2015-06-25 Per discussione Marco Beri
On Jun 25, 2015 6:26 PM, Simone Federici s.feder...@gmail.com wrote:

 Enrico Franchi:

 Gli *unici* modi per vincere scientificamente devono uscire dal
modello probabilistico astratto e considerare eventuali bias della ruota
(che, come fa notare Marco e' qualcosa che i casino' monitorano attivamente
per scongiurare) oppure la fisica del moto (essenzialmente calcolare dove
andra' a finire la pallina e piazzare la scommessa prima che vengano chiuse
ma quando si ha una probabilita' di vittoria piu' alta perche' si possono
eliminare possibilita'). Guarda caso, ai casino' diventano nervosi se si
fanno l'idea che stai facendo questa cosa.


 una telecamera che guarda la ruota mentre gira con la pallina e calcola
dove andrà a finire?

 per questo mi sa che hanno già vietato i google glass nei casinò

E comunque io faccio fatica a credere anche a questo.

Ciao.
Marco.
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Errore di semantica -

2015-06-25 Per discussione enrico franchi
2015-06-25 8:57 GMT+01:00 Carpediem i.carped...@tiscali.it:

 Per ora, mi definisco semplicemente un testardo che prima di decidere di
 buttare anche solo dieci euro al gioco, ci pensa 100 volte.


Allora usa la tua testardaggine per studiare un po' di probabilita'. Tra
l'altro la roulette e' un gioco eccellente su cui applicarla perche' ha un
modello molto molto semplice.

Ora, lascia che ti dica una cosa: se giungi alla conclusione che *in media*
puoi vincere, stai semplicemente sbagliando. O non hai capito la
matematica, o non hai capito il gioco o non hai sbagliato il modo in cui
hai modellato il problema.

In primo luogo il gioco non e' equo (sebbene per poco). Il che vuole dire
che il teorema ergodico ti sta semplicemente giocando contro. Non ci puoi
fare sopra nulla. Nulla.

Se vinci, e' per puro e semplice culo.

Gli *unici* modi per vincere scientificamente devono uscire dal modello
probabilistico astratto e considerare eventuali bias della ruota (che, come
fa notare Marco e' qualcosa che i casino' monitorano attivamente per
scongiurare) oppure la fisica del moto (essenzialmente calcolare dove
andra' a finire la pallina e piazzare la scommessa prima che vengano chiuse
ma quando si ha una probabilita' di vittoria piu' alta perche' si possono
eliminare possibilita'). Guarda caso, ai casino' diventano nervosi se si
fanno l'idea che stai facendo questa cosa.

Te lo ripeto: credi quello che vuoi. Hai torto.


-- 
.
..: -enrico-
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Errore di semantica -

2015-06-25 Per discussione enrico franchi
2015-06-25 17:40 GMT+01:00 Marco Beri marcob...@gmail.com:

  una telecamera che guarda la ruota mentre gira con la pallina e calcola
 dove andrà a finire?
 
  per questo mi sa che hanno già vietato i google glass nei casinò

 E comunque io faccio fatica a credere anche a questo.


Apparentemente c'e' gente che ha vinto dei soldi in questa maniera. Non e'
necessario sapere esattamente dove finira'.
Ma essenzialmente tu al casino perdi perche' il casino ha l'edge. Se
riuscissi ad avere tu l'edge, andresti a vincere.

Se, per intenderci, hai un sistema che ti permette di dire in quale
spicchio di numeri la pallina cadra', tu avresti 1/5 di vincere, ma vinci
sempre 30 e qualcosa volte quello che giochi. Puoi calcolare
matematicamente il tempo medio di puntate che devi fare per avere una
probabilita' del 99.9x9 di vincere (scegli il numero di 9 che vuoi). Io mi
aspetto che sia fattibile.


-- 
.
..: -enrico-
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Errore di semantica -

2015-06-25 Per discussione Marco Beri
2015-06-25 18:51 GMT+02:00 enrico franchi enrico.fran...@gmail.com:

 2015-06-25 17:40 GMT+01:00 Marco Beri marcob...@gmail.com:

  una telecamera che guarda la ruota mentre gira con la pallina e calcola
 dove andrà a finire?
  per questo mi sa che hanno già vietato i google glass nei casinò

 E comunque io faccio fatica a credere anche a questo.


 Apparentemente c'e' gente che ha vinto dei soldi in questa maniera. Non e'
 necessario sapere esattamente dove finira'.
 Ma essenzialmente tu al casino perdi perche' il casino ha l'edge. Se
 riuscissi ad avere tu l'edge, andresti a vincere.


Sì, avevo letto.

Però è tutto molto fumoso e, purtroppo, veramente poco documentato. Si fa
fatica a capire cosa c'è di vero e cosa è solo bragging.

Se, per intenderci, hai un sistema che ti permette di dire in quale
 spicchio di numeri la pallina cadra', tu avresti 1/5 di vincere, ma vinci
 sempre 30 e qualcosa volte quello che giochi. Puoi calcolare
 matematicamente il tempo medio di puntate che devi fare per avere una
 probabilita' del 99.9x9 di vincere (scegli il numero di 9 che vuoi). Io mi
 aspetto che sia fattibile.


Certo, questo mi è chiaro :-)

Affascinante.

Ciao.
Marco.
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Errore di semantica -

2015-06-25 Per discussione Simone Federici
Enrico Franchi:

 Gli *unici* modi per vincere scientificamente devono uscire dal modello
 probabilistico astratto e considerare eventuali bias della ruota (che, come
 fa notare Marco e' qualcosa che i casino' monitorano attivamente per
 scongiurare) oppure la fisica del moto (essenzialmente calcolare dove
 andra' a finire la pallina e piazzare la scommessa prima che vengano chiuse
 ma quando si ha una probabilita' di vittoria piu' alta perche' si possono
 eliminare possibilita'). Guarda caso, ai casino' diventano nervosi se si
 fanno l'idea che stai facendo questa cosa.


una telecamera che guarda la ruota mentre gira con la pallina e calcola
dove andrà a finire?

per questo mi sa che hanno già vietato i google glass nei casinò
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Errore di semantica -

2015-06-25 Per discussione Marco Beri
2015-06-25 9:57 GMT+02:00 Carpediem i.carped...@tiscali.it:

 Non si tratta quindi di sperare di Sbancare ma semplicemente di alzarsi
 dal tavolo di gioco dopo averci passato un po' di tempo e magari con poco
 più di un centinaio di euro in tasca rispetto a quelli con cui ci si è
 oresentati al tavolo da gioco.

Ho già fatto molti tentativi che comunque, escludono ipotesi di scommesse
 su eventi sempre più improbabili dal verificarsi (parlo delle terzine e dei
 numeri singoli estratti) e ti assicuro, che i risultati ottenuti sono stati
 molto incoraggianti.


Di norma (e questa è l'ultima cosa che ti dico :-) questi sistemi
funzionano per il 99% delle volte ma in quell'1% contrario il banco ti
sottrae tutto quello che hai vinto prima con l'aggiunta della sua cagnotte.

E quell'1% alla lunga accade sempre. Sempre.

L'unico modo per battere la roulette nell'arco della tua vita è entrare in
un casinò, puntare la puntata minima su 35 numeri a caso, sperare che non
esca uno degli altri 2, uscire con la vincita equivalente alla puntata
minima e non giocare *MAI PIÙ* per tutta la vita alla roulette.

Rispondo ad una domanda lecita ma che nessuno ha ancora fatto: perché vado
al casinò una volta all'anno nonostante sappia di non poter vincere alla
lunga? Perché mi piace l'emozione degli attimi prima dell'uscita di un
numero e, quando va bene, quella degli attimi dopo.

In fondo anche andare al cinema o leggere un libro ha un costo in cambio di
emozioni.

Ciao.
Marco.

-- 
http://beri.it/ - Un blog
http://beri.it/i-miei-libri/ - Qualche libro
http://beri.it/articoli/ - Qualche articolo
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Errore di semantica -

2015-06-25 Per discussione Gianluca Esposito
Il giorno 25 giugno 2015 01:41, Marco Beri marcob...@gmail.com ha scritto:


 Io credo che sia giusto provare a scoprire cose nuove. Anche combattere
 contro dei mulini a vento se uno ci crede davvero.

 È perfino possibile tentare di quadrare il cerchio, ma solo se non si sa
 che è impossibile.

 Quando qualcuno ti rimanda a
 https://it.wikipedia.org/wiki/Quadratura_del_cerchio e tu insisti, allora
 non si tratta più di costanza o coraggio o inventiva o quant'altro ma solo
 di ottusità.

 Non me ne voglia (troppo) Carpediem.

 Ah, giusto, non avevo postato il link:
 https://en.wikipedia.org/wiki/Gambler's_fallacy

 La pagina italiana è meno completa ma comunque contiene la sostanza
 necessaria a comprendere perché è tempo perso provare a battere il banco:
 https://it.wikipedia.org/wiki/Fallacia_dello_scommettitore


A tutto ciò aggiungerei che la questione dei numeri ritardatari sia una
trappola vincente per il banco.
Pensiamo al lotto, se il 90% dei giocatori puntasse sullo stesso numero
perchè ritardatario, si avrebbe una distribuzione di giocate concentrate su
un numero che ha la stessa probabilità di uscire degli altri 89.
Se il numero non esce, il banco non pagherà nessuno dei giocatori e in più
i giocatori saranno invogliati a rigiocare lo stesso numero perchè sono
aumentate le settimane di ritardo. E' vero che quando e se il numero uscirà
il banco forse sarà sbancato, ma nel frattempo avrà accumulato tante
puntate concentrate su quel numero che sarà irrilevante la perdita finale.

Quindi i numeri ritardatari migliorano le prestazioni del banco, che già ha
migliori probabilità di vincere senza questo aiutino ulteriore.

Ciao
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Errore di semantica -

2015-06-25 Per discussione Carpediem



Il 25/06/2015 01:13, Marco Beri ha scritto:
Se tu avessi scritto variabile = 1 ti avrebbe sorpreso che fosse 
sempre posta a 1? Credo di no.


Se tu avessi scritto variabile = -1 ti avrebbe sorpreso che fosse 
sempre posta a -1? Credo di no.


Ma allora perché se scrivi variabile = +1 ti sorprende che venga 
sempre posta a 1?


Ciao.
Marco.



Chiaro, Ho capito. Grazie!!!

___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Errore di semantica -

2015-06-25 Per discussione Alessandro Re
@Marco Beri, ahaha ti stavi giustificando per le tue scappatelle al
casinò? :D Io non ci sono mai stato, ma potrei andarci. E ovviamente
ci andrei per lo stesso motivo: per divertirmi, non per vincere...
Quella sarebbe un'illusione.

 La consapevolezza che il banco giochi con la matematica a suo favore, mi 
 appartiene. Sono consapevole, quindi, che chi gli giochi contro è in 
 svantaggio rispetto alle aspettative di vincita a suo favore. Ne sono così 
 convinto,

Non ne sei troppo convinto se cerchi di vincere usando una strategia
come quella che esponi qui sotto :)
Se il banco vince sempre, vuol dire che vince sempre, non sempre a
meno di un giocatore intelligente.

Quindi, la tua strategia è quella di dire: aspetto un evento che è
più probabile che esca, tipo l'uscita di un numero/colonna
ritardatario/a. Poi dopo un certo numero di volte che non esce, inizio
a puntare. Se perdo, la volta dopo punto il doppio, così mi ripago
delle perdite precedenti, e avanti così.

Marco ha già dato una risposta, ma io - che ho un debole per il
calcolo delle probabilità - aggiungerò altro.

La tua strategia non è nuova, e anzi esiste dal 1700... È abbastanza
naturale, secondo me, arrivare a questa idea, e persino io quando ho
studiato i giochi d'azzardo ci sono arrivato (solo che non ho dovuto
fare un programma per convincermi che non era fattibile :D).

Il concetto si chiama Martingala:

https://it.wikipedia.org/wiki/Martingala_%28matematica%29
https://en.wikipedia.org/wiki/Martingale_%28betting_system%29

L'osservazione fondamentale è: la strategia funziona se hai il
portafoglio illimitato.
Ovvero: non puoi viverci. Ovvero: se hai tanti soldi puoi bilanciare
la sfiga fino ad un certo punto, ma non puoi arricchirti. E comunque
se hai tanti soldi non vai al casinò per farne altri.

L'osservazione pratica è: se esiste dal 1700 e i casinò esistono
ancora e vincono ancora, significa che empiricamente non funziona :)

Per quanto riguarda i numeri ritardatari... Gianluca ha fatto un
discorso che ha senso dal punto di vista della distribuzione, che è
interessante, e ha centrato il punto: tutti i numeri hanno, ad ogni
giocata, la stessa probabilità di essere estratti.

Questo vuol dire che fondamentalmente puoi applicare la tua strategia
anche appena arrivi al banco, senza tener conto dei ritardatari.
Il concetto a cui fai riferimento, cioé prima o poi deve uscire, che
è ciò che spinge a studiare i numeri ritardatari, è valida: solo che
la legge dei grandi numeri è, appunto, sui grandi numeri, che non
sono 20 giocate, ma sono - di solito - almeno 30.

Non puoi raddoppiare abbastanza volte da avere un margine di sicurezza
sensato per giocare, semplicemente perché c'é un limite alla posta.

Divertiti pure a programmare, ma sappi che la strategia non ti porterà
da nessuna parte (a parte una piccola soddisfazione intellettuale,
certo, ma da quel che leggo sembra che tu ambisca a vincere qualche
soldino).

Ciauz
~Ale
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Errore di semantica -

2015-06-25 Per discussione Marco Beri
2015-06-25 10:43 GMT+02:00 Alessandro Re a...@ale-re.net:

 @Marco Beri, ahaha ti stavi giustificando per le tue scappatelle al
 casinò?


:-)

L'osservazione fondamentale è: la strategia funziona se hai il
 portafoglio illimitato.


Non solo: anche la puntata deve essere possibilmente illimitata. Infatti il
banco si difende comunque, limitando la puntata, da un eventuale ipotetico
giocatore con portafoglio infinito.

Ovvero: non puoi viverci. Ovvero: se hai tanti soldi puoi bilanciare
 la sfiga fino ad un certo punto, ma non puoi arricchirti.


In realtà se hai portafoglio illimitato e un gioco con puntata illimitata
puoi guadagnare infiniti soldi.

Certo hai ragione: se hai già un portafoglio illimitato che te ne fai di
infiniti soldi?

:-D

Ciao.
Marco.

-- 
http://beri.it/ - Un blog
http://beri.it/i-miei-libri/ - Qualche libro
http://beri.it/articoli/ - Qualche articolo
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Errore di semantica -

2015-06-25 Per discussione Carlos Catucci
2015-06-25 9:57 GMT+02:00 Carpediem i.carped...@tiscali.it:

 utto questo, per tentare di farsi aiutare, se non proprio dalla
 matematica, dalla statistica.


Pardonez moi ma ti rimanderei alla visione del bellissimo Rosencrantz e
Guilderstern sono morti * per quanto riguarda le percentuali di ritardo. A
ogni estrazione le probabilita' sono le stesse. Sic et simpliciter.
In un corso che ho tenuto (casi delal vita in Python) abbiamo realizzato un
semplice simulatore di SuperEnalotto.
Posta una giocata di 6 numeri fissi abbiamo simulato 100,000 estrazioni del
lotto prendenodo i primi estratti delle sei ruote che si usano per il
superenalotto appunto (inclusa la regola di prendere il secondo estratto
qualora il rpimo fosse gia stato estratto su altra ruota) e testato le
percentuali di vincita (per comodita' abbiamo eliminato il 5+1) per
3,4,5,6. 6 mai beccato, un 5 una volta o due (su 100,000 estrazioni ricordo
che sono quelle che si hanno in oltre 660 anni considerando 3 estrazioni
settimanali) mentre 4 abbastanza alti e 3 elevatissimi. Comunque assegnado
una vincita media a ciascun risultato utile e ponendio di giocare solo 50
cent (in realta' si giocano 2 colonne per 1 euro minimo) ci abbiamo rimesso
alla grande (in senso simulato).
La statistica e' una cosa, il calcolo delle probabilita' una cosa
differente. Mi spiace ma potrebbe uscire 1000 volte di seguito croce (come
nel citato film) e a ogni lancio le probabilita' (posto che chi lancia non
bari) sono le stesse: 50%.

* Erano gli amici di Amleto.

Carlos
-- 
EZLN ... Para Todos Todo ... Nada para nosotros
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Errore di semantica -

2015-06-24 Per discussione Marco Beri
On Jun 24, 2015 8:50 AM, Marco Beri marcob...@gmail.com wrote:


 On Jun 24, 2015 8:28 AM, Simone Federici s.feder...@gmail.com wrote:
 
   Marco Baro:

Rotfl!

Solo ora ho visto...
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Errore di semantica -

2015-06-24 Per discussione Marco Beri
On Jun 24, 2015 8:49 AM, Daniele Zambelli daniele.zambe...@gmail.com
wrote:

  La matematica non credo, ma forse la fisica potrebbe aiutare.

Daniele,
hai ragione, ma per evitare anche questo problema le uscite della roulette
sono monitorate costantemente e non appena viene notato uno scostamento da
una normale distribuzione statistica (da un programma ovviamente) la
roulette viene fatta controllare e ritirare.

C'è una storia su come sono state cambiate le regole del black jack per non
favorire i giocatori che è molto istruttiva, ma sarei troppo OT.

Ciao.
Marco.
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Errore di semantica -

2015-06-24 Per discussione Marco Beri
On Jun 24, 2015 2:41 AM, Alessandro Re a...@ale-re.net wrote:

 E non solo ti dirò dove sbagli per l'errore che descrivi, ma per gli
 altri mille peccati capitali che hai commesso nel codice :D ahahah

Aggiungo un commento anche io, ma solo perché da giovane mi sono illuso
fino a che ho studiato un po' più seriamente la questione.

Se stai scrivendo questo programma per diletto vai pure avanti e divertiti.

Ma se pensi che la roulette sia battibile con un qualsiasi sistema,
rinuncia: la matematica ti condanna alla sconfitta. Per poter vincere
dovresti avere capitale infinito e puntate non limitate. Cose false
entrambe.

Ciao.
Marco.

P.s. Oltre al fatto che è vietato usare un computer al casinò.
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


[Python] Errore di semantica -

2015-06-24 Per discussione Simone Federici
 Marco Baro:

 Ma se pensi che la roulette sia battibile con un qualsiasi sistema,
 rinuncia: la matematica ti condanna alla sconfitta. Per poter vincere
 dovresti avere capitale infinito e puntate non limitate. Cose false
 entrambe.

Tieni per te le tue paure, ma condividi con gli altri il tuo coraggio.
(Robert Louis Stevenson)



-- 
Simone Federici

Software Craftsman
XP, Agile, Scrum, Kanban
Quality, performance  security

Explicit is better than implicit.
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Errore di semantica -

2015-06-24 Per discussione Marco Beri
On Jun 24, 2015 8:28 AM, Simone Federici s.feder...@gmail.com wrote:

  Marco Baro:

 Ma se pensi che la roulette sia battibile con un qualsiasi sistema,
rinuncia: la matematica ti condanna alla sconfitta. Per poter vincere
dovresti avere capitale infinito e puntate non limitate. Cose false
entrambe.

 Tieni per te le tue paure, ma condividi con gli altri il tuo coraggio.
 (Robert Louis Stevenson)

Queste non sono paure (vado ancora al casinò una volta l'anno) ma è
semplice conoscenza. Tra l'altro è conoscenza cassandresca nel senso che
l'avrò detto cento volte ma nessuno mai mi ha ascoltato. L'illusione di
poter battere il banco è dura a morire.

Ciao.
Marco.
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Errore di semantica -

2015-06-24 Per discussione Daniele Zambelli
Il 24 giugno 2015 08:21, Marco Beri marcob...@gmail.com ha scritto:
 Ma se pensi che la roulette sia battibile con un qualsiasi sistema,
 rinuncia: la matematica ti condanna alla sconfitta. Per poter vincere
 dovresti avere capitale infinito e puntate non limitate. Cose false
 entrambe.

Odio il gioco d'azzardo.

Io a naso punterei sui numeri che escono più spesso piuttosto che sui
ritardatari.

 La matematica non credo, ma forse la fisica potrebbe aiutare.

Un sorriso.

-- 

Daniele

www.fugamatematica.blogspot.com

giusto!
nel verso
forse è perché non guardiamo le cose
Quando non ci capiamo,
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Errore di semantica -

2015-06-24 Per discussione Carpediem



Il 24/06/2015 08:28, Simone Federici ha scritto:

 Marco Baro:

Ma se pensi che la roulette sia battibile con un qualsiasi
sistema, rinuncia: la matematica ti condanna alla sconfitta. Per
poter vincere dovresti avere capitale infinito e puntate non
limitate. Cose false entrambe.

Tieni per te le tue paure, ma condividi con gli altri il tuo coraggio.
(Robert Louis Stevenson)

Incoraggiante!!!



--
Simone Federici

Software Craftsman
XP, Agile, Scrum, Kanban
Quality, performance  security

Explicit is better than implicit.




___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Errore di semantica -

2015-06-24 Per discussione Carpediem



Il 24/06/2015 08:21, Marco Beri ha scritto:


On Jun 24, 2015 2:41 AM, Alessandro Re a...@ale-re.net 
mailto:a...@ale-re.net wrote:


 E non solo ti dirò dove sbagli per l'errore che descrivi, ma per gli
 altri mille peccati capitali che hai commesso nel codice :D ahahah

Aggiungo un commento anche io, ma solo perché da giovane mi sono 
illuso fino a che ho studiato un po' più seriamente la questione.


Se stai scrivendo questo programma per diletto vai pure avanti e 
divertiti.


Ma se pensi che la roulette sia battibile con un qualsiasi sistema, 
rinuncia: la matematica ti condanna alla sconfitta. Per poter vincere 
dovresti avere capitale infinito e puntate non limitate. Cose false 
entrambe.


Ciao.
Marco.

P.s. Oltre al fatto che è vietato usare un computer al casinò.



Ho testato quello che ho in mente di scrivere facendo delle simulazioni 
che mi sono costate tanta costanza e fatica (valle a controllare tutte 
le variabili con carta e penna ad ogni mano). Se riesco a realizzare 
ciò che ho
in mente, mi ricorderò di chiederti di farmi una simulazione da 
croupier. So di apparire come uno sprovveduto ma io sto tentando di 
mettere in pratica l'opportunità che proprio la matematica e il calcolo 
delle probabilità offrono.
Ad ogni modo, arrivare in fondo sarà stato un buon esercizio di 
programmazione. Le regole del casinò le ho studiate e mi spiace solo di 
non poter contare su una puntata massima appena superiore ai 600 euro.
Per quanto riguarda il capitale, tremila euro sono sufficienti per avere 
buone possibilità di riuscire. Per il resto, serve la consapevolezza che 
ci si deve sedere al tavolo con l'obiettivo di alzarsi appena

si è raggiunto il limite auto imposto per la perdita o per la vincita.
Per quanto riguarda l'uso del computer, è chiaro che non ho certo 
immaginato qualcuno che possa sedersi al tavolo con il pc tra le dita ...

Ti saprò dire



___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Errore di semantica -

2015-06-24 Per discussione Carpediem



Il 24/06/2015 22:08, Alessandro Re ha scritto:

Il punto è che la variabile viene messa*sempre*  a 1 da quel codice,
quindi se devi passare da 0 a 1 il codice funziona, ma se devi passare
da 1 a 2 o da N a N+1, non funzionerà:)


La cosa che ancora mi sorprende è proprio il motivo per cui la variabile 
sia posta sempre a 1. Ad ogni modo,
tutto quanto mi hai spiegato sarà da me messo sotto test in modo da 
essere sicuro di riuscire a metabolizzarlo.
Grazie ancora. Davvero non speravo di rimediare così tante e dettagliate 
informazioni. =-O


___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Errore di semantica -

2015-06-24 Per discussione Daniele Tricoli
On Wednesday 24 June 2015 22:41:37 Carpediem wrote:
 So di apparire come uno sprovveduto ma io sto tentando di 
 mettere in pratica l'opportunità che proprio la matematica e il calcolo 
 delle probabilità offrono.

Marco Beri ti ha già fatto notare la cosa. Personalmente non conosco le regole 
della roulette, ma di certo non è un sistema a memoria per cui la tua 
modellizzazione va rivista, no? Mi riferisco a `liste_in_ritardo` in 
particolare.

-- 
 Daniele Tricoli 'Eriol'
 https://mornie.org
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Errore di semantica -

2015-06-24 Per discussione Marco Beri
2015-06-24 23:51 GMT+02:00 Carpediem i.carped...@tiscali.it:


 Il 24/06/2015 22:08, Alessandro Re ha scritto:

 Il punto è che la variabile viene messa **sempre** a 1 da quel codice,
 quindi se devi passare da 0 a 1 il codice funziona, ma se devi passare
 da 1 a 2 o da N a N+1, non funzionerà :)


 La cosa che ancora mi sorprende è proprio il motivo per cui la variabile
 sia posta sempre a 1. Ad ogni modo,
 tutto quanto mi hai spiegato sarà da me messo sotto test in modo da essere
 sicuro di riuscire a metabolizzarlo.
 Grazie ancora. Davvero non speravo di rimediare così tante e dettagliate
 informazioni. =-O


Se tu avessi scritto variabile = 1 ti avrebbe sorpreso che fosse
sempre posta a 1? Credo di no.

Se tu avessi scritto variabile = -1 ti avrebbe sorpreso che fosse
sempre posta a -1? Credo di no.

Ma allora perché se scrivi variabile = +1 ti sorprende che venga sempre
posta a 1?

Ciao.
Marco.
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Errore di semantica -

2015-06-24 Per discussione Marco Beri
2015-06-25 1:30 GMT+02:00 Daniele Tricoli er...@mornie.org:

 On Wednesday 24 June 2015 22:41:37 Carpediem wrote:
  So di apparire come uno sprovveduto ma io sto tentando di
  mettere in pratica l'opportunità che proprio la matematica e il calcolo
  delle probabilità offrono.

 Marco Beri ti ha già fatto notare la cosa. Personalmente non conosco le
 regole
 della roulette, ma di certo non è un sistema a memoria per cui la tua
 modellizzazione va rivista, no? Mi riferisco a `liste_in_ritardo` in
 particolare.


Io credo che sia giusto provare a scoprire cose nuove. Anche combattere
contro dei mulini a vento se uno ci crede davvero.

È perfino possibile tentare di quadrare il cerchio, ma solo se non si sa
che è impossibile.

Quando qualcuno ti rimanda a
https://it.wikipedia.org/wiki/Quadratura_del_cerchio e tu insisti, allora
non si tratta più di costanza o coraggio o inventiva o quant'altro ma solo
di ottusità.

Non me ne voglia (troppo) Carpediem.

Ah, giusto, non avevo postato il link:
https://en.wikipedia.org/wiki/Gambler's_fallacy

La pagina italiana è meno completa ma comunque contiene la sostanza
necessaria a comprendere perché è tempo perso provare a battere il banco:
https://it.wikipedia.org/wiki/Fallacia_dello_scommettitore

Ciao.
Marco.

-- 
http://beri.it/ - Un blog
http://beri.it/i-miei-libri/ - Qualche libro
http://beri.it/articoli/ - Qualche articolo
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Errore di semantica -

2015-06-24 Per discussione Daniele Tricoli
On Thursday 25 June 2015 01:41:49 Marco Beri wrote:
 Io credo che sia giusto provare a scoprire cose nuove. Anche combattere
 contro dei mulini a vento se uno ci crede davvero.

Sì, concordo in pieno, però essendo il nostro tempo limitato magari può 
risultare più interessante dedicarsi al problema nella giusta ottica. La 
teoria della probabilità nella definizione assiomatica di Kolmogorow, a mio 
avviso, è veramente bella, e anche solo per diletto merita di essere 
esplorata.

Questo libro ha un taglio pratico (io preferisco partire dalla teoria), ma 
èinteressante (e guarda caso utilizza Python :D):

http://greenteapress.com/thinkstats2/index.html

Ognuno è libero di investire il proprio tempo come ritiene più opportuno. Il 
mio è semplicemente un consiglio spassionato per Carpediem.

-- 
 Daniele Tricoli 'Eriol'
 https://mornie.org
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Errore di semantica -

2015-06-24 Per discussione Simone Federici
Carpediem:

 Tieni per te le tue paure, ma condividi con gli altri il tuo coraggio.
 (Robert Louis Stevenson)
 Incoraggiante!!!


Non ho mai capito se ci vuol più coraggio a tentare o ad arrendersi.
:-)

Cmq William Blake diceva:
Chi manca di coraggio è esuberante d’astuzia.

Ma credo che le parole adatte siano quelle di Gandhi:
La propensione dell'uomo a ingannare se stesso è immensamente superiore
alla sua capacità d'ingannare il prossimo.
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Errore di semantica -

2015-06-24 Per discussione Marco Beri
2015-06-25 1:22 GMT+02:00 Simone Federici s.feder...@gmail.com:

 Ma credo che le parole adatte siano quelle di Gandhi:
 La propensione dell'uomo a ingannare se stesso è immensamente superiore
 alla sua capacità d'ingannare il prossimo.


Questa è una incredibile perla che non conoscevo.

Grazie Simone.

Ciao.
Marco.
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Errore di semantica -

2015-06-24 Per discussione Carpediem

Il 24/06/2015 02:41, Alessandro Re ha scritto:

Se la roulette avesse avuto 1 numeri cosa facevi, li elencavi uno
per uno? :P
Usa tuple(range(37)) anziché quell'elenco che hai scrtto.
*Ciao Alessandro, innanzitutto grazie infinite. La tua risposta non solo 
mi ha risolto il problema ma mi ha aperto molti altri orizzonti:**
**quello sopra, è uno di questi ma, come avrai capito, sono alle prime 
armi con python e lavorando per 9 ore al giorno per 6 giornia settimana,**
**i miei progressi sono molto lenti. Ho molte idee per la testa e provo 
a metterle in pratica con quel poco che ho finora acquisito. Quanto 
sopra, mi piace molto.*


passe = (19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36)
manque = (1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18)

Per questi usa tuple(range(19, 37)) e tuple(range(1, 19)).

 *Vedi sopra!!!*

Questa sfilza di stringhe potresti formattarla meglio, come ad esempio

puntate_possibili = (
passe,
manque,
pari,
dispari,
nero,
rosso,
prima

ecc, anche se esce una cosa lunghissima, personalmente preferisco un
codice più lungo e leggibile che di qualche riga in meno e che mi fa
incrociare gli occhi.

*Qui non ti seguo: in realtà il mio codice prevede una ulteriore lista di altre 
65 variabili (che mi sono risparmiato dal**
**riportare) e sinceramente, ritengo l'insieme troppo lungo per scriverlo riga 
per riga)*

Ho notato che usi un sacco di print(); non voglio dirti che è una cosa
brutta, ma personalmente non mi piace mischiare gli stili: o usi una
print per ogni riga, o usi \n in una print sola. Io andrei di una
print per ogni riga. Ti consiglio, molto umilmente, di adottare uno
stile ed essere coerente ad esso.

*Hai assolutamente ragione!!!*

capitale_disponibile = eval(input(Per cominciare, indicami l'importo che
intendi mettere a disposizione per il gioco (si consiglia almeno 2500 Euro)
))
eval(input()) è una cosa che vuoi evitare quasi sempre. Non usarlo.
Usa int(input()) se vuoi ottenere un intero oppure usa usa
ast.literal_eval(input()).

*Colpa delle prime iniziali informazioni acquisite con python 3: terrò conto 
del tuo consiglio*

Esistono opzioni migliori per formattare incolonnando. Esempio:

print('Valore: {:12} Valore {:8}'.format(4, 123))

Usa format() e tutte le sue belle opzionI:

*Per me è una cosa ignorata, grazie dell'informazione!*

Se passe e manque e tutti_i_numeri li usi solo per tenere elenchi di
numeri, puoi fare 2 cose per migliorare il tuo codice:

1. usare set() anziché tuple(). Set è molto più veloce per vedere se
un elemento è al suo interno, rispetto a tuple, e la sintassi valore
in insieme è invariata e molto gradevole da leggere. Quindi, anziché
usare tuple(range(37)), usa set(range(37)). Se, invece, la tupla ti
serve perché è ordinata (set non preserva l'ordine), allora tieni la
tupla.

*Vedi sopra*


uscita_manque =+1

E questa riga credo sia l'origine del tuo baco. Più volte nel codice scrivi

variabile =+1

e secondo me tu stai cercando di ottenere

variabile = variabile + 1

ma forse non sai, o non ti sei accorto, che l'operatore += è ben
diverso dai due operatori =+.

a += b vuol dire a = a + b
a =+ b vuol dire a = (+b) cioé a = b (+ indica il segno del numero).


*E qui casca l'asino L'errore era proprio questo e a questo punto non si 
trattava quindi di un errore**
**di semantica. Non riesco ancora bene a spiegarmi il perchè al primo passaggio 
in effetti il valore della**
**variabile aumenti di una unità (così come da me voluto) e poi tale valore 
resti invariato al passsaggio successivo**
**nè capisco perchè python preveda, a questo punto, l'utilizzo di una forma di 
scrittura così come involontariamente**
**io l'abbia scritta. Ad ogni modo, per non sbagliare, +1 = forever*

ultimo appunto: in genere è buona cosa fare controllo indipendenti
dalle maiuscole e dalle minuscole.
Quindi:

prosegui_gioco = input('Blah).lower()

così se l'utente inserisce SI o Si, il codice funziona comunque e non
è necessario scrivere tutto in minuscolo.

*Anche questo, merita tutto il mio apprezzamento*


Spero di averti risolto il problema e ti averti dato qualche dritta :P

*Problema risolto e sei stato un insegnante completo ed esaustivo.**
**Il codice che girava senza segnalare errori ma col risultato non voluto, era 
diventato frustrante.**
Avrei trascorso settimane prima di scoprire l'errore da solo e non sono neanche 
sicuro che così
sarebbe andata a finire.
**Grazie infinite**
*


___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Errore di semantica -

2015-06-24 Per discussione Alessandro Re
2015-06-24 20:41 GMT+01:00 Carpediem i.carped...@tiscali.it:
 Ciao Alessandro, innanzitutto grazie infinite. La tua risposta non solo mi
 ha risolto il problema ma mi ha aperto molti altri orizzonti:
 quello sopra, è uno di questi ma, come avrai capito, sono alle prime armi
 con python e lavorando per 9 ore al giorno per 6 giornia settimana,
 i miei progressi sono molto lenti. Ho molte idee per la testa e provo a
 metterle in pratica con quel poco che ho finora acquisito. Quanto sopra, mi
 piace molto.

Ciao,
sì, avevo intuito e per questo ti ho dato qualche consiglio di altro tipo :)
Bene se ti è utile.

 Qui non ti seguo: in realtà il mio codice prevede una ulteriore lista di
 altre 65 variabili (che mi sono risparmiato dal
 riportare) e sinceramente, ritengo l'insieme troppo lungo per scriverlo riga
 per riga)

Ok, è questione di gusti :)
Comunque, dato che hai diverse stringhe composte tipo carre 1a3,
carre 2a6, oppure prima sestina, seconda sestina, prima
colonna, seconda colonna, potresti anche valutare, per risparmiare
righe, di costruire quelle frasi in modo algoritmico (dove puoi).

Quindi, per esempio, per le prime 3 colonne e 3 sestine puoi fare:

def genera_combinazioni(parole_prima, parole_seconda):
return tuple(' '.join(x) for x in product(parole_prima.split(),
parole_seconda.split()))

genera_combinazioni('prima seconda terza', 'prima seconda')
per ottenere

('prima sestina',
 'prima colonna',
 'seconda sestina',
 'seconda colonna',
 'terza sestina',
 'terza colonna')

Ora, questo metodo ti può salvare qualche riga e qualche errore di
battitura (o moltiplicarli :D), ma non credo sia davvero conveniente
nel tuo caso.

Per evitare la bruttezza nel codice, e anche per facilitare la
traduzione in altre lingue, di solito si usa mettere tutte le stringhe
in un file (uno per ogni lingua da tradurre) e, nel tuo codice,
leggere quel file. Nel tuo caso, mettere le stringhe in un file
semplifica molto la lettura del codice, però hai lo svantaggio di
dover aver sempre dietro il file in questione.

Per leggere il file ed ottenere una tupla, dove ogni riga è una
stringa, basta fare:

with open('file_stringhe.txt') as fp:
puntate_possibili = tuple(line.strip() for line in fp)

attento che usare .strip() rimuove tutti gli spazi (incluse le new
line) a destra e a sinistra della stringa, ti dico questa cosa, ma
probabilmente ti va benissimo così :)

 E qui casca l'asino L'errore era proprio questo e a questo punto non si
 trattava quindi di un errore
 di semantica. Non riesco ancora bene a spiegarmi il perchè al primo
 passaggio in effetti il valore della
 variabile aumenti di una unità (così come da me voluto) e poi tale valore
 resti invariato al passsaggio successivo

Il punto è che la variabile viene messa *sempre* a 1 da quel codice,
quindi se devi passare da 0 a 1 il codice funziona, ma se devi passare
da 1 a 2 o da N a N+1, non funzionerà :)

 nè capisco perchè python preveda, a questo punto, l'utilizzo di una forma di
 scrittura così come involontariamente
 io l'abbia scritta. Ad ogni modo, per non sbagliare, +1 = forever

Aspetta, forse ho capito male, ma +1 = è sbagliato in python:
attento a non confondere il + di +1 col segno positivo
(contrapposto al segno negativo dei numeri -1, -2, -3...), al fatto
che l'operatore += è composto da due caratteri.

Scrivere (metto gli spazi per farti capire quali sono le entità in gioco)

A+=B

è come scrivere

A=A   +   B

Se scrivi

A+=B

hai errore: += è un operatore vero e proprio e deve essere scritto
attaccato. Invece, il + che precede un numero per indicare il segno
positivo, può essere separato.

Scrivere

A += + B

ha perfettamente senso, e il secondo + davanti a B è solo
ridondante... Fondamentalmente, python permette di scrivere
A =+1

perché +1 è un numero, e lo spazio tra l'uguale e il numero +1 non
ha importanza :) A=1, A = 1, A=+ 1, A = + 1 son tutte cose
uguali.

Insomma, tu devi scrivere qualcosa come

[variabile] [operatore] [valore]

variabile è uscita_manque
operatore è += (senza spazi)
valore è 1 (o +1, è indifferente)

se scrivi uscita_manque +1 = ottieni

[variabile] [valore] [operatore]

che in Python non funziona.

Comunque, ti ho scritto 'sta spataffiata perché hai scritto +1 =, ma
magari avevi già capito.

Se vuoi toglierti ogni dubbio usa variabile = variabile + valore e
vivi felice :D

Ciauz
~Ale
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


[Python] Errore di semantica -

2015-06-23 Per discussione Carpediem

Scusate ma ci sto sbattendo la testa da 5 giorni e non riesco a capire dov'è 
che sbaglio. Sto testando queste poche righe di codice e
quando il programma mi chiede quale sia il numero uscito, scrivo 19 e 
proseguendo, nella schermata di riepilogo successiva mi ritrovo,
così come mi aspetto, che il ritardo di uscita manque sia incrementato di 1. 
Potete dirmi per cortesia, per quale diavolo di errore
ripetendo l'inserimento sempre dello stesso numero, nella schermata di 
riepilogo successiva invece di ritrovarmi con il ritardo di uscita
manque a 2 me lo ritrovo fermo a 1?
Ho seguito i passaggi uno ad uno anche con carta e penna, ho modificato il 
codice più volte ma alla fine ottengo sempre lo stesso non voluto
risultato. Mi aiutate a capire?
Grazie



uscita_passe =0
uscita_manque =0
scommessa_semplice = (passe,manque)
scommessa_passe =0
scommessa_manque =0
tutti_i_numeri = 
(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36)
passe = (19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36)
manque = (1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18)
liste_in_ritardo = []
puntate_possibili = (passe,manque,pari,dispari,nero,rosso,prima dozzina,seconda dozzina,terza dozzina,prima colonna,seconda 
colonna,terza colonna,prima sestina,seconda sestina,terza sestina,quarta sestina,quinta sestina,sesta sestina,\
 settima sestina,ottava sestina,nona sestina,decima sestina,undicesima sestina,quattro primi,carre 1a5,carre 2a6,carre 
4a8,carre 5a9,carre 7a11,carre 8a12,carre 10a14,carre 11a15,carre 13a17,carre 14a18,carre 16a20,carre 17a21,\
 carre 19a23,carre 20a24,carre 22a26,carre 23a27,carre 25a29,carre 26a30,carre 
28a32,carre 29a33,carre 31a35,carre 32a36)
print(Attenzione: stiamo facendo riferimento alle regole della Roulette 
francese.)
print(Si presuppone, come previsto ad esempio al Casino' di Venezia, che la puntata 
minima accettata\nsia di 10 Euro e la massima di 600. Si ritiene scontato, inoltre, che 
il giocatore\nsegua rigorosamente i suggerimenti che verranno evidenziati dal 
programma.)
print()
capitale_disponibile =eval(input(Per cominciare, indicami l'importo che intendi 
mettere a disposizione per il gioco (si consiglia almeno 2500 Euro)))
print()
inizio_gioco =0
giocate_effettuate =0
whileinizio_gioco ==0:
print(A seguire, l'elenco delle puntate possibili considerate da questo 
programma e l'attuale situazione del gioco:)
print()
print(Giocata+(()*17),ritardi di uscita+(()*6),Giocata+(()*17),ritardi di 
uscita+(()*8))

print(\npasse+(()*27),uscita_passe,(()*13),manque+(()*26),uscita_manque)
print()
iflen(liste_in_ritardo) ==0:
print(Al momento non ho scommesse da suggerirti: salta la mano e)
eliflen(liste_in_ritardo) 0:
ifuscita_manque =8:
print(I numeri da 1 a 18 (manque) sono in ritardo 
da,uscita_manque,estrazioni)
elifuscita_passe =8:
print(I numeri da 19 a 36 (passe) sono in ritardo da, 
uscita_passe,estrazioni)
controllo_numero_uscito =0
whilecontrollo_numero_uscito ==0:
numero_uscito =eval(input(indica il numero uscito))
print()
ifnumero_uscitonot intutti_i_numeri:
print(Devi inserire un numero compreso tra 0 e 36)
elifnumero_uscitointutti_i_numeri:
conferma_numero_uscito =input(Sei sicuro di aver inserito il numero 
giusto? si/no)
print()
ifconferma_numero_uscito ==no:
print()
elifconferma_numero_uscito ==si:
controllo_numero_uscito =+1
else:
print(Per confermare o smentire devi scrivere si o no)
ifnumero_uscitoinpasse:
uscita_passe =0
uscita_manque =+1
print()
print(E' appena uscito un numero del gruppo passe,,)
ifuscita_passeinliste_in_ritardo:
delliste_in_ritardo[uscita_passe]
ifuscita_manque ==8:
liste_in_ritardo.append(uscita_manque)
elifnumero_uscitoinmanque:
uscita_manque =0
uscita_passe =+1
print()
print(E' appena uscito un numero del gruppo manque,,)
ifuscita_manqueinliste_in_ritardo:
delliste_in_ritardo[uscita_manque]
ifuscita_passe ==8:
liste_in_ritardo.append(uscita_passe)
controllo_prosegui_gioco =0
whilecontrollo_prosegui_gioco ==0:
prosegui_gioco =input(Vuoi continuare a giocare? si/no)
ifprosegui_gioco ==si:
print()
controllo_prosegui_gioco =+1
giocate_effettuate =+1
elifprosegui_gioco ==no:
inizio_gioco =+1
print(Ok, spero tu ti sia divertito; arrivederci)
controllo_prosegui_gioco =+1
else:
print(Devi rispondere si o no)

___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Errore di semantica -

2015-06-23 Per discussione Alessandro Re
2015-06-24 0:19 GMT+01:00 Carpediem i.carped...@tiscali.it:
 Ho seguito i passaggi uno ad uno anche con carta e penna, ho modificato il
 codice più volte ma alla fine ottengo sempre lo stesso non voluto
 risultato. Mi aiutate a capire?

Ciao, ti dirò dove secondo me stai sbagliando, anche se non conosco la roulette.
E non solo ti dirò dove sbagli per l'errore che descrivi, ma per gli
altri mille peccati capitali che hai commesso nel codice :D ahahah

 uscita_passe = 0
 uscita_manque = 0
 scommessa_semplice = (passe,manque)
 scommessa_passe = 0
 scommessa_manque = 0
 tutti_i_numeri =
 (0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24!
  ,25,26,27,28,29,30,31,32,33,34,35,36)

Se la roulette avesse avuto 1 numeri cosa facevi, li elencavi uno
per uno? :P
Usa tuple(range(37)) anziché quell'elenco che hai scrtto.

 passe = (19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36)
 manque = (1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18)

Per questi usa tuple(range(19, 37)) e tuple(range(1, 19)).

 liste_in_ritardo = []
 puntate_possibili = (passe,manque,pari,dispari,nero,rosso,prima
 dozzina,seconda dozzina,terza dozzina,prima colonna,seconda
 colonna,terza colonna,prima sestina,seconda sestina,terz
 a sestina,quarta sestina,quinta sestina,sesta sestina,\
  settima sestina,ottava sestina,nona
 sestina,decima sestina,undicesima sestina,quattro primi,carre
 1a5,carre 2a6,carre 4a8,carre 5a9,carre 7a11,carre 8a12,carre
 10a14,carre 11a15,carre 13a17,carre 14a18,carre 16a20,carre
 17a21,\
  carre 19a23,carre 20a24,carre 22a26,carre
 23a27,carre 25a29,carre 26a30,carre 28a32,carre 29a33,carre
 31a35,carre 32a36)

Questa sfilza di stringhe potresti formattarla meglio, come ad esempio

puntate_possibili = (
passe,
manque,
pari,
dispari,
nero,
rosso,
prima

ecc, anche se esce una cosa lunghissima, personalmente preferisco un
codice più lungo e leggibile che di qualche riga in meno e che mi fa
incrociare gli occhi.

 print(Attenzione: stiamo facendo riferimento alle regole della Roulette
 francese.)
 print(Si presuppone, come previsto ad esempio al Casino' di Venezia, che la
 puntata minima accettata \nsia di 10 Euro e la massima di 600. Si ritiene
 scontato, inoltre, che il giocatore\nsegua rigorosamente i suggerimenti che
 verranno evidenziati dal programma.)
 print()

Ho notato che usi un sacco di print(); non voglio dirti che è una cosa
brutta, ma personalmente non mi piace mischiare gli stili: o usi una
print per ogni riga, o usi \n in una print sola. Io andrei di una
print per ogni riga. Ti consiglio, molto umilmente, di adottare uno
stile ed essere coerente ad esso.

 capitale_disponibile = eval(input(Per cominciare, indicami l'importo che
 intendi mettere a disposizione per il gioco (si consiglia almeno 2500 Euro)
 ))

eval(input()) è una cosa che vuoi evitare quasi sempre. Non usarlo.
Usa int(input()) se vuoi ottenere un intero oppure usa usa
ast.literal_eval(input()).

https://docs.python.org/3/library/ast.html#ast.literal_eval

 print(Giocata+(( )*17),ritardi di uscita+(( )*6),Giocata+((
 )*17),ritardi di uscita+(( )*8))

Esistono opzioni migliori per formattare incolonnando. Esempio:

print('Valore: {:12} Valore {:8}'.format(4, 123))

Usa format() e tutte le sue belle opzionI:
https://docs.python.org/3.3/library/string.html#formatstrings

 if numero_uscito in passe:

Se passe e manque e tutti_i_numeri li usi solo per tenere elenchi di
numeri, puoi fare 2 cose per migliorare il tuo codice:

1. usare set() anziché tuple(). Set è molto più veloce per vedere se
un elemento è al suo interno, rispetto a tuple, e la sintassi valore
in insieme è invariata e molto gradevole da leggere. Quindi, anziché
usare tuple(range(37)), usa set(range(37)). Se, invece, la tupla ti
serve perché è ordinata (set non preserva l'ordine), allora tieni la
tupla.

2. Se hai degli intervalli numerici e devi verificare se sei in tali
intervalli, non usare né tuple né set. Usa gli operatori =, e magari
definisci un paio di funzioni per leggere meglio:

def in_passe(n):
return 19 = n = 36

if in_passe(numero_uscito):
etc

 uscita_manque =+1

E questa riga credo sia l'origine del tuo baco. Più volte nel codice scrivi

variabile =+1

e secondo me tu stai cercando di ottenere

variabile = variabile + 1

ma forse non sai, o non ti sei accorto, che l'operatore += è ben
diverso dai due operatori =+.

a += b vuol dire a = a + b
a =+ b vuol dire a = (+b) cioé a = b (+ indica il segno del numero).

 prosegui_gioco = input(Vuoi continuare a giocare? si/no )
 if prosegui_gioco == si:

ultimo appunto: in genere è buona cosa fare controllo indipendenti
dalle maiuscole e dalle minuscole.
Quindi:

prosegui_gioco = input('Blah).lower()

così se l'utente inserisce SI o Si, il codice funziona comunque e non
è necessario scrivere tutto in minuscolo.

Spero di averti risolto il problema e ti averti dato qualche dritta :P
Ciauz
~Ale