Python Language
La fonction d'impression
Recherche…
Notions de base sur l'impression
Dans Python 3 et versions ultérieures, print
est une fonction plutôt qu'un mot clé.
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
Vous pouvez également transmettre un certain nombre de paramètres à print
:
print(foo, bar, baz)
# out: 1 bar 3.14
Une autre façon d’ print
plusieurs paramètres est d’utiliser un +
print(str(foo) + " " + bar + " " + str(baz))
# out: 1 bar 3.14
Ce que vous devez faire attention lorsque vous utilisez +
pour imprimer plusieurs paramètres, c'est que le type des paramètres doit être identique. Si vous essayez d'imprimer l'exemple ci-dessus sans la conversion en string
une erreur se produirait, car cela tenterait d'ajouter le nombre 1
à la chaîne "bar"
et d'ajouter cela au nombre 3.14
.
# Wrong:
# type:int str float
print(foo + bar + baz)
# will result in an error
En effet, le contenu de l’ print
sera évalué en premier:
print(4 + 5)
# out: 9
print("4" + "5")
# out: 45
print([4] + [5])
# out: [4, 5]
Sinon, l'utilisation d'un +
peut être très utile pour un utilisateur pour lire la sortie de variables. Dans l'exemple ci-dessous, la sortie est très facile à lire!
Le script ci-dessous illustre cette
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))
Vous pouvez empêcher l' print
fonction d'impression automatique en utilisant une nouvelle ligne de la end
paramètre:
print("this has no newline at the end of it... ", end="")
print("see?")
# out: this has no newline at the end of it... see?
Si vous souhaitez écrire dans un fichier, vous pouvez le transmettre en tant que file
paramètres:
with open('my_file.txt', 'w+') as my_file:
print("this goes to the file!", file=my_file)
cela va au fichier!
Paramètres d'impression
Vous pouvez faire plus que simplement imprimer du texte. print
également plusieurs paramètres pour vous aider.
Argument sep
: place une chaîne entre les arguments.
Devez-vous imprimer une liste de mots séparés par une virgule ou une autre chaîne?
>>> print('apples','bannas', 'cherries', sep=', ')
apple, bannas, cherries
>>> print('apple','banna', 'cherries', sep=', ')
apple, banna, cherries
>>>
end
argument: utilisez autre chose qu'une nouvelle ligne à la fin
Sans l'argument de end
, toutes print()
fonctions print()
écrivent une ligne, puis vont au début de la ligne suivante. Vous pouvez le changer pour ne rien faire (utilisez une chaîne vide de ''), ou doublez l'espacement entre les paragraphes en utilisant deux nouvelles lignes.
>>> print("<a", end=''); print(" class='jidn'" if 1 else "", end=''); print("/>")
<a class='jidn'/>
>>> print("paragraph1", end="\n\n"); print("paragraph2")
paragraph1
paragraph2
>>>
file
argument: envoie la sortie à un endroit autre que sys.stdout.
Vous pouvez maintenant envoyer votre texte à stdout, à un fichier ou à StringIO sans vous soucier de ce qui vous a été donné. S'il se répète comme un fichier, il fonctionne comme un fichier.
>>> 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
>>>
Il y a un quatrième paramètre de flush
qui force purger le flux.