Python Language
La funzione di stampa
Ricerca…
Informazioni di base sulla stampa
In Python 3 e versioni successive, la print
è una funzione piuttosto che una parola chiave.
print('hello world!')
# out: hello world!
foo = 1
bar = 'bar'
baz = 3.14
print(foo)
# out: 1
print(bar)
# out: bar
print(baz)
# out: 3.14
È anche possibile passare un numero di parametri per print
:
print(foo, bar, baz)
# out: 1 bar 3.14
Un altro modo per print
più parametri è usare un +
print(str(foo) + " " + bar + " " + str(baz))
# out: 1 bar 3.14
Quello che dovresti fare attenzione quando usi +
per stampare più parametri, è che il tipo dei parametri dovrebbe essere lo stesso. Cercando di stampare l'esempio sopra senza il cast to string
primo si darebbe un errore, perché proverebbe ad aggiungere il numero 1
alla stringa "bar"
e aggiungerlo al numero 3.14
.
# Wrong:
# type:int str float
print(foo + bar + baz)
# will result in an error
Questo perché il contenuto della print
verrà valutato per primo:
print(4 + 5)
# out: 9
print("4" + "5")
# out: 45
print([4] + [5])
# out: [4, 5]
Altrimenti, usare un +
può essere molto utile per un utente per leggere l'output delle variabili Nell'esempio seguente l'output è molto facile da leggere!
Lo script qui sotto lo dimostra
import random
#telling python to include a function to create random numbers
randnum = random.randint(0, 12)
#make a random number between 0 and 12 and assign it to a variable
print("The randomly generated number was - " + str(randnum))
È possibile impedire la print
funzione dalla stampa automaticamente una nuova riga utilizzando la end
del parametro:
print("this has no newline at the end of it... ", end="")
print("see?")
# out: this has no newline at the end of it... see?
Se vuoi scrivere su un file, puoi passarlo come file
parametri:
with open('my_file.txt', 'w+') as my_file:
print("this goes to the file!", file=my_file)
questo va al file!
Stampa i parametri
Puoi fare di più che stampare semplicemente testo. print
ha anche diversi parametri per aiutarti.
Argomento sep
: posiziona una stringa tra gli argomenti.
Hai bisogno di stampare un elenco di parole separate da una virgola o da qualche altra stringa?
>>> print('apples','bannas', 'cherries', sep=', ')
apple, bannas, cherries
>>> print('apple','banna', 'cherries', sep=', ')
apple, banna, cherries
>>>
end
argomento: utilizzare qualcosa di diverso da una nuova riga alla fine
Senza l'argomento end
, tutte print()
funzioni print()
scrivono una riga e poi si spostano all'inizio della riga successiva. Puoi cambiarlo per non fare nulla (usa una stringa vuota di ""), o una doppia spaziatura tra i paragrafi usando due newline.
>>> print("<a", end=''); print(" class='jidn'" if 1 else "", end=''); print("/>")
<a class='jidn'/>
>>> print("paragraph1", end="\n\n"); print("paragraph2")
paragraph1
paragraph2
>>>
file
argomenti: invia l'output a un posto diverso da sys.stdout.
Ora puoi inviare il tuo testo a stdout, a un file o a StringIO e non ti interessa quale ti viene dato. Se cova come un file, funziona come un file.
>>> def sendit(out, *values, sep=' ', end='\n'):
... print(*values, sep=sep, end=end, file=out)
...
>>> sendit(sys.stdout, 'apples', 'bannas', 'cherries', sep='\t')
apples bannas cherries
>>> with open("delete-me.txt", "w+") as f:
... sendit(f, 'apples', 'bannas', 'cherries', sep=' ', end='\n')
...
>>> with open("delete-me.txt", "rt") as f:
... print(f.read())
...
apples bannas cherries
>>>
C'è un quarto parametro flush
che forzatamente sciacquare il flusso.