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.



Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow