
La funzione print() in Python
La funzione print() è la funzione built-in del linguaggio Python che di permette di stampare le informazioni in uscita (output) sullo schermo o in un file.
print(argomenti)
La funzione print() accetta più argomenti.
Se non indichi nemmeno un argomento, la funzione stampa una nuova linea vuota.
Di default la funzione print() stampa sullo schermo (standard output). Puoi comunque impostare come uscita anche un file.
Ricorda che print() in Python 3 è una funzione, non un'istruzione come in Python 2. Quindi devi sempre usare le parentesi con print(). Se non indichi le parentesi tonde, Python restituisce un errore.
Ecco un esempio pratico.
Digita una stringa come argomento della funzione.
print("Hello world!")
In questo esempio la funzione print() riceve una stringa e la stampa sulla console.
Hello world!
Puoi anche passare due o più argomenti alla funzione print(), separandoli tra loro con una virgola.
print("Hello", "Tom")
In questo caso la funzione stampa gli argomenti separandoli con uno spazio:
Hello Tom
La funzione print() converte automaticamente gli argomenti non-stringa in stringhe.
Quindi, puoi passare oggetti di qualsiasi tipo a print()
print("La risposta è", 42)
In questo caso, Python converte il numero 42 nella stringa "42" e stampa in uscita la stringa:
La risposta è 42
Ricorda che la funzione print() crea automaticamente una nuova linea dopo la stampa.
Quindi, se esegui due istruzioni print() in sequenza, il risultato viene visualizzato su due linee diverse
print("Hello")
print("world!")
In questo caso il risultato è stampato su due linee contigue
Hello
world!
Per continuare a stampare sulla stessa linea, dovresti modificare l'opzione end della funzione print(). Te ne parlo nel prossimo paragrafo.
Le opzioni avanzate della funzione print
La funzione print() ha diverse opzioni avanzate che ti permettono di modificare la stampa.
print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)
Dove:
- *objects sono gli argomenti da stampare.
- sep è il carattere separatore tra gli argomenti. Di default è uno spazio.
- end è il carattere che viene stampato alla fine. Di default è un carattere di nuova linea (\n).
- file indica dove dovrebbero essere stampati. Di default è sys.stdout, cioè la console.
- flush indica se la funzione deve svuotare il buffer subito dopo la stampa (True) oppure no (False). Di default è False.
Queste opzioni ti consentono di controllare come e dove gli argomenti vengono stampati.
Ad esempio, puoi cambiare il separatore tra gli argomenti (di default è uno spazio) e puoi specificare cosa dovrebbe essere stampato alla fine della linea (di default è un carattere di nuova linea):
print("This", "is", sep="---", end="*")
print("a test")
In questo esempio, è indicata l'opzione sep="---". Quindi, gli argomenti "This" e "is" sono separati da "---" nella stampa.
Inoltre, è indicata anche l'opzione end="*". Ciò fa sì che il primo print() termini con il carattere ''*", evitando di creare una nuova linea, e il secondo print() continui a stampare in coda alla stessa linea.
Il risultato sullo schermo è
This---is*a test
Di default l'opzione file=sys.stdout è associata allo standard output, ossia allo schermo.
Quindi, la funzione print("Hello")
print("Hello")
equivale al metodo write dell'oggetto stdout
import sys
sys.stdout.write('Hello'+'\n')
In alternativa, puoi indicare come uscita un file fisico "myfile.txt"
file1 = open('myfile.txt', 'w')
print("Hello", file=file1)
print("world!", file=file1)
In questo caso la funzione print equivale al codice
file = open('myfile', 'w')
file.write('Hello'+'\n')
In alternativa, per evitare di indicare file=file1 in ogni funzione print(), puoi anche modificare temporaneamente lo standard output (sys.stdout) assegnandolo alla scrittura di un file e ripristinarlo al termine delle operazioni. Ad esempio
sys.stdout = open('myfile.txt', 'w')
print("Hello")
print("world!")
sys.stdout.close()
sys.stdout = sys.__stdout__
La prima riga sys.stdout = open('myfile.log', 'w') assegna lo standard output alla scrittura nel file fisico "myfile.txt". Le righe seguenti stampano le informazioni nel file. Infine, viene chiuso il file con il metodo close(). L'ultima riga sys.stdout = sys.__stdout__ ripristina lo standard output al valore di default ossia allo schermo.
Questi sono solo alcuni esempi pratici delle grandi potenzialità della funzione print().