Python >> Tutoriel Python >  >> Python

Un guide complet de la fonction Python print()

Explorons la fonction Python print() en détail avec quelques exemples. Il y a plus que vous ne le pensez !

Il y a de fortes chances que l'une de vos premières rencontres avec Python ait inclus print() , peut-être sous la forme d'un "Hello, World!" programme. Le Python print() est une fonction de base que vous pouvez comprendre et commencer à utiliser très rapidement.

Mais il y a plus qu'il n'y paraît. Dans cet article, nous explorons cette fonction en détail en expliquant le fonctionnement de tous les arguments et en vous montrant quelques exemples.

Une bonne référence pour savoir comment le Python print() fonction fonctionne est dans la documentation officielle. La fonction accepte plusieurs arguments comme indiqué ci-dessous avec leurs valeurs par défaut :

print(*objects, sep=' ', end= '\n', file=sys.stdout, flush=False)

Nous avons touché le print() fonction dans un autre article. Dans les sections ci-dessous, nous passerons en revue les arguments un par un et vous montrerons tout ce que vous devez savoir pour utiliser cette fonction à son plein potentiel. Pour ceux d'entre vous qui découvrent Python, jetez un coup d'œil à ce mini parcours, qui comprend des défis de codage interactifs pour accélérer votre apprentissage.

*objets

La chose à imprimer est représentée par le premier argument *objects et peut être fondamentalement n'importe quoi. Il s'agit généralement d'une chaîne, mais il peut s'agir d'un entier, d'un flottant, d'une variable, d'une liste ou d'un dictionnaire, entre autres. Le print() la fonction peut également prendre plus d'un objet.

Puisqu'il est courant d'imprimer des chaînes, il convient de mentionner que les chaînes peuvent être définies avec des guillemets simples ("chaîne") ou des guillemets doubles ("chaîne"). Vos préférences personnelles et le cas d'utilisation déterminent lequel utiliser. Pour le démontrer, considérez les deux exemples suivants :

	>>> string = 'She asked "How do you print quotes?"'
	>>> string = "It's about time to program something"

Si vous souhaitez en savoir plus sur l'utilisation des chaînes, consultez ce cours. Nous avons également un article dans lequel nous vous montrons comment indexer et découper des chaînes.

L'utilisation la plus basique du Python print() la fonction sert simplement à imprimer une chaîne :

>>> print("Hello, World!")

Les mots clés non spécifiés prennent leurs valeurs par défaut, qui sont répertoriées ci-dessus dans l'introduction.

Les opérations normales sur les chaînes peuvent être utilisées dans la fonction. Par exemple, vous pouvez multiplier une chaîne par un entier comme indiqué ici :

	>>> print("print this twice " * 2)

À ce stade, il est important d'aborder le formatage des chaînes. La méthode à l'ancienne est avec %-formatage; cependant, cela n'est pas recommandé car cela devient un peu encombrant avec des chaînes plus longues.

La meilleure façon est d'utiliser str.format() , où les champs de remplacement sont indiqués par des accolades. Définissons quelques variables et imprimons-les dans une chaîne :

	>>> name = "Mary"
	>>> age = 20
	>>> print("{} is {} years old".format(name, age))
Mary is 20 years old

Pour plus d'exemples de formatage de chaîne, la documentation officielle est une bonne référence. Vous pouvez également utiliser cette méthode pour imprimer des données tabulaires - nous avons écrit un article séparé sur le sujet.

Une autre méthode de formatage est connue sous le nom de formatage f-string. C'est similaire à l'exemple ci-dessus, mais c'est un peu plus compact. En utilisant les mêmes variables que ci-dessus, nous pouvons écrire :

	>>> print(f"{name} is {age} years old")
Mary is 20 years old

Si vous souhaitez imprimer un objet itérable comme une liste ou un tableau, l'utilisation d'une expression étoilée aide à décompresser l'itérable et à l'imprimer correctement :

	>>> print(*[1, 2, 3, 4])
	1 2 3 4

Essayez d'imprimer la même liste sans l'étoile et voyez ce que vous obtenez. Essayez également d'imprimer la séquence donnée par la fonction intégrée range() avec et sans l'étoile. Nous verrons d'autres exemples avec des expressions étoilées dans la section suivante.

septembre

Le deuxième argument du Python print() fonction définit le séparateur. Si plus d'un objet est donné comme premier argument, alors sep définit quel délimiteur placer entre eux. En partant de l'exemple précédent, nous définissons le séparateur comme étant le caractère de saut de ligne :

	>>> print(*[1, 2, 3, 4], sep="\n")
	1
	2
	3
	4

Un autre cas d'utilisation de cet argument est d'imprimer correctement certains résultats. Nous pouvons définir une variable et imprimer sa valeur dans une phrase lisible par l'homme comme celle-ci :

	>>> result = 10
>>> print("Result of experiment ", result, sep=" is ")
	Result of experiment is 10

Ici, la chaîne "Result of experiment" et la variable result les deux ensemble sont le *objects argument, et la valeur de sep est imprimée entre eux.

fin

Le mot-clé end vous permet de définir quelque chose à imprimer automatiquement à la fin de la sortie. Il s'agit par défaut du caractère de nouvelle ligne ("\n").

Aucun des arguments du Python print() fonction sont requises à proprement parler. Si aucun argument n'est donné, le mot-clé end est imprimé, qui est le caractère de saut de ligne par défaut. C'est assez simple, mais pour être complet, construisons sur l'exemple précédent en ajoutant un point d'exclamation à la fin :

>>> print("Result of experiment", result, sep=" is ", end="!")
Result of experiment is 10!

fichier

Ne pas spécifier ce mot clé écrit sur le terminal en Python par défaut. La documentation liée ci-dessus indique que la valeur par défaut est sys.stdout , ce qui signifie "écrire sur la sortie standard" en Python. Il s'agit d'un objet fichier intégré qui affiche tout ce qui y est écrit (avec le .write() méthode) à la console. Si vous voulez écrire dans un fichier en Python, spécifiez votre propre objet fichier avec le file mot-clé.

En prévision du dernier exemple, définissons la chaîne suivante et enregistrons-la dans le fichier "flush_demo.py" (ne vous inquiétez pas, tout cela aura bientôt un sens) :

	>>> open_file = open('flush_demo.py', 'w')
>>> string = "import time\nfor num in range(10, 0, -1):\n\tprint(str(num)+' ', end='', flush=True)\n\ttime.sleep(1)\nprint('\\nCountdown finished!')"
	>>> print(string, file=open_file)
	>>> open_file.close()

Maintenant, allez dans votre répertoire de travail actuel et vous voyez le nouveau fichier que nous avons créé. La chaîne est en fait un programme, que nous utiliserons bientôt.

Il est important de noter que vous devez définir l'objet fichier en mode écriture puis le fermer à la fin. Si vous souhaitez plus de détails sur l'écriture dans un fichier en Python, nous avons un article à ce sujet.

affleurant

Le flush le mot-clé est un ajout récent au print() fonction. Il accepte un booléen, soit True ou False .

Normalement, la sortie vers un fichier ou la console est mise en mémoire tampon. Le tampon est "vidé" (ou imprimé) uniquement lorsqu'il est plein ou lorsqu'une nouvelle ligne est atteinte. Définir ce mot-clé sur True vide de force le tampon avant qu'il ne soit plein ou avant qu'un caractère de saut de ligne ne soit rencontré.

Pour voir cela en action, nous devons utiliser le fichier que nous venons de créer dans l'exemple précédent. Pour exécuter ce script, ouvrez le terminal, accédez au bon répertoire et exécutez :

	>>> python flush_demo.py

Vous voyez que nous avons créé un compte à rebours. Avec flush=True , la mémoire tampon est vidée après que chaque numéro individuel est imprimé dans la boucle, puis le programme dort pendant 1 seconde. Avec flush=False , le programme dort pendant 10 secondes et la mémoire tampon n'est vidée qu'à la fin du programme, imprimant la séquence de nombres en une seule fois.

À vous, du Python print() Fonction

Pour conclure cet article sur la fonction Python print(), voici un message de remerciement personnalisé. Copiez et collez simplement ceci dans votre console :

>>> print(f"Thanks {input('Enter your name: ')}", end=", and Goodbye!")

Prochain article