Input e output in Python: funzioni I/O

Input e output in Python: funzioni I/O

27 Novembre 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.