Capitolo 3. Chi va là ?

3.1. Input e variabili

Ora proviamo un programma un po' più complicato:

print "Halt!"
s = raw_input("Who Goes there? ")
print "You may pass,", s
ecco l'output del programma:
Halt!
Who Goes there? Josh
You may pass, Josh
Ovviamente quando proverete anche voi l'esecuzione il vostro output sarà differente grazie all'espressione raw_input. Avviando il programma (perché lo state provando vero?) avrete notato che richiede l'inserimento del vostro nome per poi premere 'Enter' e continuare l'esecuzione; a quel punto viene visualizzato un messaggio seguito dal vostro nome. Questo è un esempio di input: il programma viene eseguito fino a un certo punto, dopodiché attende un input di dati dall'utente.

Certamente un input sarebbe inutile se non avessimo nessun posto dove mettere l'informazione ottenuta, ecco quindi che entrano in gioco le variabili. Nel programma precedente s è, appunto, una variabile. Le variabili sono come delle scatole in cui si possono immagazzinare dati. Ecco un programma che ne spiega l'utilizzo:

a = 123.4
b23 = 'Spam'
first_name = "Bill"
b = 432
c = a + b
print "a + b is", c
print "first_name is", first_name
print "Sorted Parts, After Midnight or",b23
e questo è l'output:
a + b is 555.4
first_name is Bill
Sorted Parts, After Midnight or Spam
Come ho detto: le variabili immagazzinano dati. Nel programma qui sopra ad esempio sono a, b23, first_name, b e c. Le due tipologie base di variabili sono stringhe e numeri. Le stringhe sono sequenze di lettere, numeri e altri caratteri: nell'esempio b23 e first_name sono variabili contenenti stringhe. 'Spam', 'Bill', 'a + b is ' e 'first_name' sono stringhe: come potete notare sono sempre racchiuse da " ' " o " " ". Gli altri tipi di variabili presenti sono numeri.

Ora, abbiamo queste scatole chiamate variabili e anche dati da metterci dentro. Il computer vedrà una linea come 'first_name = Bill' che leggerà come - metti la stringa 'Bill' nella scatola (o variabile) 'first_name'. Più tardi vedrà l'espressione 'c = a + b' che leggerà come "metti a+b o 123.4 + 432 all'interno della variabile c".

Ecco un'altro esempio sull'utilizzo delle variabili:

a = 1
print a
a = a + 1
print a
a = a * 2
print a
E di conseguenza ecco l'output:
1
2
4
Anche se in tutti i casi sopraelencati la variabile ha lo stesso nome il computer la rilegge ogni volta. Prima trova i dati da immagazzinare e poi trova dove immagazzinarli.

Un'ultimo esempio prima di chiudere il capitolo:

num = input("Type in a Number: ")
str = raw_input("Type in a String: ")
print "num =", num
print "num is a ",type(num)
print "num * 2 =",num*2
print "str =", str
print "str is a ",type(str)
print "str * 2 =",str*2
Ecco l'output che ho ottenuto:
Type in a Number: 12.34
Type in a String: Hello
num = 12.34
num is a  <type 'float'>
num * 2 = 24.68
str = Hello
str is a  <type 'string'>
str * 2 = HelloHello
Osserva il modo in cui ho ottenuto dall'utente le due varaibili: input per la variabile numerica e raw_input per la variabile stringa. Quando volete che l'utente inserisca un numero o una stringa utilizzate, rispettivamente, input o stringa raw_input.

La seconda parte del programma utilizza la funzione type che vi informa sul tipo di variabile: le varibili numeriche sono di tipo int (numero intero) o float (numero decimale), le stringhe sono di tipo string. Interi e decimali possono essere utilizzati per operazioni matematiche, le stringhe no. Tuttavia quando una stringa viene moltiplicata per un intero vengono aggiunte alla stringa copie di se stessa: ad es. str * 2 = HelloHello