[Linuxtrent] Re: And Logico in Python...

  • From: Mario Alexandro Santini <alexmario74@xxxxxxxxx>
  • To: linuxtrent@xxxxxxxxxxxxx
  • Date: Wed, 8 Jul 2009 11:02:44 +0200

2009/7/8 Paolo Bernardi <paolino@xxxxxxxxxxxxxx>:
> Alex wrote:
>> Ciao,
>>  ma perchč se, dato questo elementare frammento di script, se scomposto
>> nell'interprete funziona mentre se lanciato come script la seconda funzione
>> mi torna SEMPRE la condizione else ????...non riesco a capire !
>
> Cosě su due piedi non saprei la differenza del comportamento tra
> interprete e script. In ogni caso ti suggerisco di usare
> int(raw_input()) invece di raw_input() in entrambi casi. In questo modo
> i valori letti verranno interpretati come numeri interi ed i confronti
> funzioneranno regolarmente.
>
> *** Esempio con l'interprete ***
>
>>>> a = raw_input()
> 3
>>>> a
> '3'
>>>> type(a)
> <type 'str'>
>>>> a = int(raw_input())
> 3
>>>> type(a)
> <type 'int'>
>
> ********************************
>
>
> Paolo
>

Ancora meglio è gestire l'eccezione:
http://docs.python.org/tutorial/errors.html

>>> while True:
...     try:
...         x = int(raw_input("Please enter a number: "))
...         break
...     except ValueError:
...         print "Oops!  That was no valid number.  Try again..."


Utilizzando la conversione direttamente sulla lettura dello stdin, si rischia
che per un carattere scappato l'applicazione esca con errore.


-- 
Ciao,
      Mario
--
Per iscriversi  (o disiscriversi), basta spedire un  messaggio con OGGETTO
"subscribe" (o "unsubscribe") a mailto:linuxtrent-request@xxxxxxxxxxxxx


Other related posts: