Marco Beri mi ha anticipato, concordo con lui

Il giorno 3 maggio 2015 21:45, Marco Beri <marcob...@gmail.com> ha scritto:

>
> On May 3, 2015 9:21 PM, "Carpediem" <i.carped...@tiscali.it> wrote:
> >
> > Un saluto a tutti. Grazie al vostro aiuto, ho già risolto più di una
> volta alcuni miei dubbi. Ne approfitto ancora sperando nel medesimo
> positivo riultato.
> > Ho scritto un programmino per esercitarmi sulle notizioni acquisite.
> > Nel cercare una soluzione per evitare di ritrovarmi con un messaggio di
> errore nel caso in cui in input si immettesse un valore carattere invece di
> un numero, ho trovato come soluzione l'utilizzo di try.
> > Tutto ok perchè l'istruzione risponde a quanto da me voluto. Il
> problema, è che mi ritrovo con le stesse righe di istruzioni ripetute
> diverse volte (per giorni, ore, minuti, secondi, decimi e centesimi di
> secondo) il che rende il programma seppur funzionante, sicuramente scritto
> male.
> > Ho provato a creare una funzione ma credo di non aver capito molto bene
> come crearne una dato che, in questo caso, non ci sono riuscito avendo
> fallito ogni mio tentativo.
> > Qui a seguire, vi riporto quanto ho scritto (per i casi di giorni e ore)
> ma le stesse righe di istruzioni si ripetono di volta in volta fino a
> giungere ai centesimi di secondo e la cosa mi sembra ridicola.
> > Avete modo di farmi vedere come dovrebbe essere scritta una funzione per
> adattarla a questo caso? Magari è la volta buona che mi rendo conto come ci
> si può riuscire.
> > Seguono istruzioni scritte per i primi due casi previsti (giorni e ore).
> > Grazie a tutti.
> >
> >
> > while True:
> >     try:
> >         giorni = eval(input("Inserisci il numero di giorni impiegati per
> coprire l'intero percorso "))
> >         break
> >     except NameError:
> >         print()
> >         print("Devi inserire un valore numerico")
> >         print()
> > print()
> > while True:
> >     try:
> >         ore = eval(input("Inserisci il numero delle ore impiegate per
> coprire l'intero percorso "))
> >         break
> >     except NameError:
> >         print()
> >         print("Devi inserire un valore numerico")
> >         print()
> > print()
>
> Per esempio puoi fare così:
>
> def leggi_valore(msg):
>     while True:
>         try:
>             valore = eval(input("Inserisci il numero di " + msg +"
> impiegati per coprire l'intero percorso "))
>             break
>         except NameError:
>             print()
>             print("Devi inserire un valore numerico")
>             print()
>     print()
>     return valore
>
> giorni = leggi_valore("giorni")
> ore = leggi_valore("ore")
>
> Ecc.
>
> _______________________________________________
> 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

Rispondere a