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.



Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow