2.6 - Istruzioni di Input/Output.

Istruzione input

Nello svolgere il programma sulla circonferenza ti sarai chiesto se è possibile fornire il raggio durante l’esecuzione, invece di doverlo scrivere ogni volta. Ebbene, ciò è possibile mediante l’istruzione input.
Consideriamo l’esempio seguente in cui inseriamo una stringa da tastiera:

Dopo aver inserito la stringa ‘Antonio’, verifichiamo se il carattere “e” è incluso in s, con l’istruzione
‘e’ in s
mentre con
s[0]==’A’
controlliamo se ‘A’ è il primo carattere della stringa.
Se la stringa è formata di soli numeri è possibile convertirla in numero intero anteponendo la funzione int; per esempio se s=’12’, possiamo trasformare s in numero intero con s=int(s) e quindi applicare ad s tutte le proprietà dei numeri.
E’ questa istruzione che ci serve per generalizzare il programma sulla circonferenza.
Carichiamo IDLE e richiamiamo il programma sulla circonferenza; al posto della riga
raggio=12
scriviamo le due righe seguenti:
raggio=input(‘Raggio=’)
raggio=int(raggio)
e lo salviamo come circonfinp.py.
Lanciamo il programma con F5 ed inseriamo 25 come valore del raggio:

E per introdurre un numero decimale?
Basta scrivere float al posto di int.
Apportiamo un'altra modifica sulle due istruzioni, input e float, trasformadole in una sola:
raggio=float(input('Raggio='))
Il programma diventa:

Digitando un valore decimale del raggio si ottiene:

Istruzione di output: print


L’istruzione print, già introdotta nel programma circonf.py, scrive sullo schermo sia qualsiasi testo posto tra singoli apici ‘, sia tra doppi apici “, come

Inoltre può stampare sul monitor sia il contenuto di una variabile e sia il risultato di un’espressione.

Spesso è necessario che i dati siano scritti in maniera ordinata: le stringhe che iniziano nelle stesse posizioni ed i numeri ben incolonnati, unità sotto le unità, decine sotto le decine, etc.
In questo caso ci viene in aiuto il metodo format.
Partiamo da un esempio che deve riportare sullo schermo i dati relativi ad un computer, il suo peso in grammi ed il suo prezzo in euro:
Nome computer peso prezzo
notebook Asus 980 489.99
Ecco come va scritto usando format:
print("Il computer {:20} pesa {:5d} gr e costa {:8.2f} euro".format(nome,peso,prezzo))

dove:
- viene prima scritta la stringa seguita da un punto e dalla parola "format";
- le parentesi graffe {} sono dei segnaposto (detti placeholder), perché sono in corrispondenza uno ad uno con le variabili che seguono la parola format;
- il primo segnaposto {:20} sta ad indicare che si aspetta una stringa, contenuta nella variabile nome, che va "racchiusa" in 20 caratteri: se la stringa è più lunga viene troncata, se più corta vengono aggiunti degli spazi fino a raggiungere il valore 20 indicato;
- il secondo segnaposto {:5d} si aspetta un numero intero che va inserito in 5 spazi, cominciando da destra;
- il terzo segnaposto {:8.2f} si aspetta un numero decimale con 8 cifre complessive, di cui due decimali.
Il metodo "format" comprende ancora molti altri comandi che possono essere trovati sul sito di python.

Osservazione: come fare in modo che due print successivi scrivano sulla stessa linea?
È sufficiente usare il comando end=" ".

ESEMPIO.
print("Ciao",end=" ")
print("mamma")

ESERCIZIO 1 ESERCIZIO 2 ESERCIZIO 3