La funzione print di python
Nel linguaggio python la funzione print() mi permette di stampare qualcosa sullo schermo o in un dispositivo. E' usata soprattutto per inviare messaggi sulla console o per scrivere dentro un file di testo.
print(x)
Dove x è una stringa, un'espressione alfanumerica, un valore numerico, ecc.
Esempio
print("hello world!")
La funzione ha anche altri parametri opzionali.
- sep modifica il carattere di separazione tra le variabili
- end modifica il carattere di fine stringa della print
- file modifica la destinazione dell'output ( schermo, file, ecc. )
Nota. Grazie a quest'ultima opzione (file) posso usare la funzione print per scrivere dentro un file di testo. Non solo sullo schermo. E' particolarmente utile.
Un esempio pratico
Esempio 1
Per stampare una stringa alfanumerica sullo schermo digito:
print("Mi chiamo Andrea")
La funzione stampa in output sulla console il messaggio testuale
Mi chiamo Andrea
Al termine della stampa la funzione print va a capo automaticamente sulla linea successiva.
E' l'esempio più semplice
Esempio 2
Per stampare stringhe e variabili su una stessa riga digito:
nome="Andrea"
print("Mi chiamo", nome)
Lo script visualizza in output
Mi chiamo Andrea
La funzione print stampa prima la stringa, poi il contenuto della variabile nome, restando sulla stessa linea dello schermo.
Le due informazioni devono essere separate da una virgola che si traduce automaticamente in uno spazio blank sullo schermo.
Nota. Possono anche esserci anche più variabili o stringhe separate tra loro da virgole in una stessa istruzione print. In questo caso, tutte le informazioni sono visualizzate sulla stessa riga. C'è un solo ritorno a capo dopo l'ultimo dato.
Come modificare il carattere separatore
Per evitare che ogni virgola sia sostituita da uno spazio in bianco, posso personalizzare il carattere separatore tramite l'opzione sep.
print(x,sep=s)
Dove x è l'espressione da stampare ed s è il carattere separatore da usare in sostituzione delle virgole.
Di default s è lo spazio in bianco (blank) ossia sep = ' '.
Esempio
Riprendo l'esempio precedente e sostituisco il carattere separatore con un asterisco ( sep='*' ).
nome="Andrea"
print("Mi chiamo", nome, sep="*")
Il risultato in output è il seguente
Mi chiamo*Andrea
La funzione ha stampato la stringa e la variabile usando l'asterisco come separatore.
E se voglio eliminare del tutto il carattere separatore?
Basta assegnargli una stringa vuota, ossia sep="", e il gioco è fatto.
Come eliminare il ritorno a capo
Per togliere il ritorno a capo automatico al termine della stampa utilizzo l'opzione end.
print(x,end=y)
Dove x è la stringa da stampare e y e il carattere da usare automaticamente come fine stringa.
Di default l'opzione end è assegnata al ritorno a capo ( end='\n')
Un esempio pratico
Sviluppo uno script con due funzioni print() in due diverse linee di codice.
print("Mi chiamo")
print("Andrea")
Il risultato in output è il seguente:
Mi chiamo
Andrea
Per ottenere la stampa sulla stessa linea, modifico il carattere di fine stringa nella prima istruzione print indicando end=''.
print("Mi chiamo", end=' ')
print("Andrea")
Ora il risultato in output è il seguente:
Mi chiamo Andrea
La prima print non va a capo perché il carattere di ritorno ora è uno spazio. Non è più quello di default sep='\n'.
Ovviamente, la modifica vale soltanto sulla prima print.
Sulla seconda print continua a valere il valore di default ( sep='\n' ) ossia il ritorno a capo.
Come scrivere dentro un file con print
La funzione print mi permette anche di stampare in un file usando l'opzione file.
print(x,file=f)
Dove x è l'espressione da stampare e f è il file.
Di default il valore f è sys.stdout ossia lo schermo ( standard output ). Al suo posto devo indicare un file di testo.
Un esempio pratico
In questo script stampo la stringa in un file. La prima riga apre in scrittura il file log.txt e gli assegna il nome logico fx.
Nella seconda riga aggiungo alla print() l'opzione file=fx.
fx = open("log.txt","w")
print("Mi chiamo Andrea", file=fx)
fx.close()
In questo caso la funzione print non visualizza la stringa sullo schermo, bensì la scrive nel file log.txt
Infine nella terza riga la funzione close() chiude il file.
Lo script crea un file sul disco fisso del PC chiamato log.txt.
All'interno del file c'è un solo record con scritto "Mi chiamo Andrea".
E così via.