Keywords: easytut-it

Next: Conta da 1 a Up: Tutorial per principianti in Previous: Hello, World Indice
Subsections

- Input e variabili
- Esempi
- Esercizi

# Chi va là?

# Input e variabili

Ora proviamo un programma un po' più complicato:

    print "Halt!"
    s = raw_input("Who Goes there? ")
    print "You may pass,", s

Quando io lo eseguo, questo appare sul mio schermo:

    Halt!
    Who Goes there? Josh
    You may pass, Josh

Ovviamente quando proverete anche voi l'esecuzione il vostro output sarà differente, grazie all'istruzione `raw_input`. Avviando il programma (perché lo state provando vero?) avrete notato che richiede l'inserimento del vostro nome e poi la pressione di Enter per continuare l'esecuzione; a quel punto viene visualizzato un messaggio seguito dal vostro nome. Questo è un esempio di input: il programma viene eseguito fino ad un certo punto, dopodiché attende un input di dati dall'utente.

Naturalmente 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 is` sono stringhe, come potete notare sono sempre racchiuse da `"` o `'`. Gli altri tipi di variabili presenti sono numeri.

Ora, abbiamo queste scatole chiamate variabili ed 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` o `555.4` 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 naturalmente ecco l'output:

    1
    2
    4

Anche se in tutti i casi elencati la variabile ha lo stesso nome, il computer la rilegge ogni volta: prima trova i dati da immagazzinare e poi decide 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 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 variabili: `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 `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`.

Le operazioni con le stringhe differiscono leggermente da quelle con i numeri. I seguenti, sono alcuni esempi che mostrano tali differenze.

    >>> "This"+" "+"is"+" joined."
    'This is joined.'
    >>> "Ha, "*5
    'Ha, Ha, Ha, Ha, Ha, '
    >>> "Ha, "*5+"ha!"
    'Ha, Ha, Ha, Ha, Ha, ha!'
    >>>

Questa è una lista di alcune operazioni con le stringhe:

Operazione | Simbolo | Esempio
Ripetizione | `*` | `"i"*5 == "iiiii"`
Concatenazione | `+` | `"Hello, "+"World!" == "Hello, World!"`

# Esempi

Velocita_tempo.py

    # Questo programma calcola lo spazio, data velocità e tempo.
    print "Input a rate and a distance"
    rate = input("Rate:")
    distance = input("Distance:")
    print "Time:",distance/rate

Esecuzione:

    > python velocita_tempo.py
    Input a rate and a distance
    Rate:5
    Distance:10
    Time: 2
    > python velocita_tempo.py
    Input a rate and a distance
    Rate:3.52
    Distance:45.6
    Time: 12.9545454545

Area.py

    # Questo programma calcola perimetro ed area del rettangolo.
    print "Calculate information about a rectangle"
    length = input("Length:")
    width = input("Width:")
    print "Area",length*width
    print "Perimeter",2*length+2*width

Esecuzione:

    > python area.py
    Calculate information about a rectangle
    Length:4
    Width:3
    Area 12
    Perimeter 14
    > python area.py
    Calculate information about a rectangle
    Length:2.53
    Width:5.2
    Area 13.156
    Perimeter 15.46

temperature.py

    # Converte Fahrenheit in Celsius.
    temp = input("Farenheit temperature:")
    print (temp-32.0)*5.0/9.0

Esecuzione:

    > python temperature.py
    Farenheit temperature:32
    0.0
    > python temperature.py
    Farenheit temperature:-40
    -40.0
    > python temperature.py
    Farenheit temperature:212
    100.0
    > python temperature.py
    Farenheit temperature:98.6
    37.0

# Esercizi

Scrivete un programma che prenda due variabili stringa e due numeriche intere dall'utente, le concateni (unisca le due stringhe senza spazi) e le visualizzi sullo schermo, infine moltiplichi i due numeri interi su una nuova linea.

Next: Conta da 1 a Up: Tutorial per principianti in Previous: Hello, World Indice