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

Reply via email to