Mi sono accorto anche io che separare i due argomenti era una
stupidaggine ed un modo per complicare la rilettura del codice.
ho modificato la cosa ed ora è tutto molto più chiaro.
Dopo una serie di tentativi, sono riuscito a riscrivere il programma
utilizzando il comando while. gira alla perfezione e ho risparmiato
decine di righe di codice.
Unica pecca, avevo scritto:
errori=0
while true:
misura_nota=input()
ma proprio qui all'inizio la shell di python mi blocca l'esecuzione
dicendomi che il nome true non è stato definito
Sono riuscito ad andare avanti solo impostando il programma scrivendo:
errori=0
while errori>=0:
misura_nota=input()
...
perchè scrivendo while true come mi hai suggerito ricevo il messaggio di
errore?
grazie di tutto
Il 14/03/2015 17:36, Manlio Perillo ha scritto:
2015-03-14 15:52 GMT+01:00 Carpediem <i.carped...@tiscali.it
<mailto:i.carped...@tiscali.it>>:
In realtà, più che un libro, è un corso trovato in rete concepito
per insegnare python a bambini di età compresa tra 10 e 14 anni.
Si chiama: passo dopo passo impariamo a programmare con python.
Gli autori sono aurora martina, angelo raffaele meo, clotilde moro
e mario scovazzi. E' imbarazzante, ma sto partendo proprio da zero
assoluto.
Hai provato con Pensare da Informatico?
http://www.python.it/doc/Howtothink/Howtothink-html-it/index.htm
In realtà mi sto aiutando cercando di acquisire informazioni anche
da altre fonti in rete e sono in attesa di un libro "vero"
comprato da feltrinelli "programmare con python guida compleata".
Vorrei riuscire a portare avanti questa sfida anche pechè mi rendo
conto che la materia mi attrae molto.
Ti ringrazio per la tua risposta ma se dai un'occhiata al mio
schema, non è molto diverso da quello che mi hai indicato.
Il problema è che vorrei continuare a mantenere la serie di
diverse risposte previste a seconda di quante volte si ripete la
risposta errata.
In realtà, se metti in esecuzione il mio schema, noterai subito il
seguente comportamento: 1)se si immette immediatamente una
qualsiasi risposta giusta tutto funziona come previsto. 2)Se si
immettono ad oltranza risposte sbagliate, tutto funziona come
previsto. 3)Se invece si immette una prima risposta errata ma
immediatamente dopo se ne immette una esatta, a questo punto il
programma invece che tornare a proporre l'inserimento delle
misure, continua a comportarsi come se avessi nuovamente immesso
una risposta errata. Ed è proprio questo il punto che non riesco a
correggere.
Perchè hai separato la parte dove chiedi una delle misure del cerchio,
e la parte dove stampi la risposta?
Come ti hanno già suggerito, fai il controllo sull'input dell'utente
*una sola* volta.
Ogni volta che l'utente sbaglia, incrementa una variabile tipo
`errori`; ogni volta che l'utente fa la cosa giusta, resetta errori a 0.
errori = 0
while true:
m = input("dato conosciuto")
if m == "a":
...
errori = 0
else if m == "d":
...
errori = 0
else:
errori = errori + 1
if errori == 1:
print("devi inserire...")
else if errori == 2:
print("Hai sbagliato ancora! ...")
else if errori == 3:
print("Lascia perdere...")
else if errori == 4:
print("La prossima volta...")
break
Probabilmente c'è un modo migliore per farlo, ma al momento non mi
viene in mente.
> [...]
Ciao Manlio
_______________________________________________
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