Input e output in Python: funzioni I/O

Input e output in Python: funzioni I/O

27 Nov 2018 0 Di Admin M.

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:

 

Help funzione print - Python

 

 

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:

 

Esempio utilizzo parametri sep e end - Python

 

 

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:

 

Metodo format - input e output in Python

 

 

  • 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:

 

Metodo format inversione segnaposto - Python

 

 


I segnaposto possono anche essere nominali invece che posizionali e in questo caso vengono associati per nome invece che per posizione.


 

Eccone un esempio:

 

Metodo format con segnaposto nominali - Python

 

 

  • E’ anche possibile visualizzare gli attributi del parametro:

 

Metodo format con visualizzazione attributi parametro - Python

 

 

  • Oppure, nel caso di una lista  passata come parametro, usare un’indice:

 

Metodo format con lista - Python

 

 

  • Possiamo forzare l’uso di str  sul parametro:

 

Forzare l'uso della funzione str - Metodo format Python

 

 

  • 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”:

 

Esempio metodo format con regole di trasformazione della stringa - Python

 

 

  • 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:

 

Parametri numerici interi come segnaposto - metodo format in Python

 

 

  • 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:

 

Parametri numerici float come segnaposto - metodo format in Python

 

  • Se vogliamo passare come parametro unico un dizionario,  usando le sue chiavi nominalmente, possiamo approfittare della sintassi avanzata di passaggio dei parametri con **:

 

Parametro dizionario - metodo format in Python

 

 


Python

 

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.