giovedì 25 ottobre 2012

Mission Python: input(), raw_input() e così sia

Oggi un post semplice semplice.

Parliamo di due funzioni, input() e raw_input()

Si tratta di due funzioni predifinite che permettono di inserire dati da tastiera!

Se il dato da inserire è una stringa useremo raw_input(), se invece è un intero useremo input().

Iniziamo dalla funzione raw_input.

Apriamo il terminale, lanciamo il comando "python" e costruiamo la nostra funzione

>>> nome = raw_input("come ti chiami? ")

Questa semplice riga di codice la possiamo dividere in due parti. Nella prima parte abbiamo la variabile nome e nella seconda parte la funzione raw_input. Queste due parti sono unite dal segno "=" che, come sappiamo, è il segno dell'assegnazione di un valore ad una varibile. Se premiamo il tasto invio, accadrà qualcosa di particolare (sì, rendiamo la cosa più avvincente!)

come ti chiami?

Ci verrà fatta questa domanda...e intanto la shell è lì, come se volesse dirci qualcosa del genere, "ma vuoi rispondere o no???"

A noi resta ben poco da fare: rispondere!

come ti chiami? Luigi

Premiamo invio e....

>>>

...sembra non sia successo nulla...e invece è successo...grazie alla funzione raw_input il nome Luigi è stato assegnato alla variabile "nome"

E se ora scriviamo

>>> print "il mio nome è ", nome

e premiamo invio.....chiaro, no?

Come abbiamo detto, se il dato da inserire è un intero (e non una stringa) useremo la funzione input()

>>> anni=input("Quanti hanni hai? ")
Quanti hanni hai? 39 #immetto la mia età e premo invio
>>> print "io ho",anni,"anni" #utilizzo l'istruzione print per stampare a video il valore della variabile e premo invio
io ho 39 anni


Cosa succede se uso una stringa con la funzione input()?

>>> anni=input("Quanti hanni hai? ")
Quanti hanni hai? trentanove #ho usato volutamente una stringa
Traceback (most recent call last):
  File "", line 1, in
  File "", line 1, in
NameError: name 'trentanove' is not defined


Avete visto?

Piccola curiosità. Il messaggio contenuto nelle parentesi tonde sia di input che di raw_input si chiama prompt e ci avvisa di inserire un determinato dato.

A proposito di funzioni...Juhan prossimamente vi racconterà tutto ciò che c'è da sapere(è sempre in ritardo!).

Tutto questo discorso fatto su input e raw_input vale per Python 2.7. Per Python 3.0 le cose  sono leggermente cambiate.

Sul blog di Juhan si trova di tutto...gli ho fregato questi dati:

La funzione raw_input() di py2 è stata rinominata input() in py3. Notare che le due funzioni ritornano una string; eseguire un cast se del caso

Python 2: the_input = raw_input() # the_input is of type string

Python 3: the_input = input() # the_input is of type string

Python 2: the_input = float(raw_input()) # the_input is of type float
Python 2: the_input = int(raw_input()) # the_input is of type int

Python 3: the_input = float(input()) # the_input is of type float
Python 3: the_input = int(input()) # the_input is of type int


La pagina da cui ho estrapolato i dati la potete trovare qui

Ma di queste differenze tra Python 2 e Python 3 ne parleremo in futuro, Roma, Cosenza, Piobesi e Ankh-Morpork mica sono state costruite in un giorno (cit.).

P.S. L'indice di "Mission Python" lo potete trovare qui.


Nessun commento:

Posta un commento