In questo articolo tratteremo le funzioni di input e output in Python, dando uno sguardo poi al loro utilizzo nei file e, in linea generale, ai toolkit grafici.
Sostanzialmente, tutti i programmi che abbiamo realizzato e che realizzeremo hanno una caratteristica in comune.
Ovvero accettano valori in input, svolgono delle operazioni su tali valori e producono qualcos’altro in output.
La funzione print
In quasi tutti gli esempi che abbiamo visto negli articoli precedenti abbiamo utilizzato la funzione print.
E’ una funzione davvero semplice da usare e dunque, non ci soffermeremo molto su di essa.
La funzione print mostra sullo standard output le espressioni che le sono state passate come parametri.
Vediamo cosa ci dice di interessante l’help:
Oltre ai valori da stampare, print accetta tre parametri:
- file, che indica dove andare a scrivere i dati da visualizzare (se non specificato, viene usato lo standard output )
- sep, che ci permette di definire quale stringa usare come separatore dei diversi valori
- end, che invece specifica cosa usare come separatore finale dell’output.
Vediamo come funzionano sep ed end:
Tipicamente utilizzeremo la funzione print in situazioni particolari di scrittura su log o su console.
Nelle applicazioni dotate di un’interfaccia avanzata non ricorreremo mai alla visualizzazione sullo standard output.
Il metodo format
Altro metodo utile per input e output in Python è format.
Per chi conosce il linguaggio C, il metodo format è l’equivalente, molto più versatile, della funzione sprintf.
Per gli altri, invece, possiamo dire che è un metodo che permette la formattazione avanzata delle stringhe.
Vediamo un semplice esempio:
- format cerca nella stringa la presenza dei segnaposto racchiusi tra parentesi graffe { }.
Nell’esempio precedente i segnaposto 0 e 1 indicano il primo e il secondo parametro passati a format.
Proviamo ad invertirli:
I segnaposto possono anche essere nominali invece che posizionali e in questo caso vengono associati per nome invece che per posizione.
Eccone un esempio:
- E’ anche possibile visualizzare gli attributi del parametro:
- Oppure, nel caso di una lista passata come parametro, usare un’indice:
- Possiamo forzare l’uso di str sul parametro:
- Nel segnaposto possiamo anche definire una serie di regole di trasformazione sulla stringa da visualizzare, specificandone dopo il carattere “:” (i due punti).
E’ possibile usare un carattere di riempimento; l’allineamento a sinistra (<), a destra (>) o al centro (^); il segno e la precisione nel caso di parametri numerici; la larghezza del valore visualizzato; infine il tipo di parametro.
Nel prossimo esempio definiremo “=” come carattere di riempimento, l’allineamento a destra con “>”, una larghezza totale di 10 caratteri, una precisione del valore di 3 decimali e un tipo di dato float con “f”:
- In caso di parametri numerici interi, il carattere che definisce il tipo del parametro può essere:
- b = binario
- c = carattere
- d = intero decimale
- o = ottale
- x = esadecimale
- X = esadecimale maiuscolo
- n = numero visualizzato nel formato locale
Se non specificato, assume il valore n. Vediamo un esempio:
- In caso di parametri numerici float il tipo può essere:
- e = notazione esponente
- E = notazione esponente maiuscola
- f o F = float
- g o G = formato generico che a seconda della dimensione ricade in uno degli altri
- n = come g, ma nel formato locale
- % = percentuale
Se non specificato, assume il valore g. Vediamo un esempio anche per questi casi:
- Se vogliamo passare come parametro unico un dizionario, usando le sue chiavi nominalmente, possiamo approfittare della sintassi avanzata di passaggio dei parametri con **:
Input e output in Python: file e toolkit grafici
A seguire, ci occuperemo delle funzioni input e output in Python in relazione a file e toolkit grafici .
Non perdere i prossimi articoli sul nostro buon Python, iscriviti alla nostra newsletter!
Perso qualche ‘puntata’? Puoi trovare la guida completa alla programmazione con Python cliccando qui.