Accéder au contenu principal

Python Print Without New Line : Ce que vous devez savoir

Contrôlez la sortie d'impression de Python pour éviter les nouvelles lignes automatiques. Apprenez à remplacer le comportement par défaut de la nouvelle ligne en utilisant le paramètre end, le module sys et la concaténation de chaînes.
Actualisé 15 janv. 2025  · 7 min de lecture

La fonction print() de Python est couramment utilisée pour afficher des données dans la console. Par défaut, la fonction print() de Python ajoute un caractère de nouvelle ligne à la fin de sa sortie, ce qui fait que la sortie suivante commence sur une nouvelle ligne. 

Bien que ce comportement soit pratique dans certains cas, il est important de comprendre les cas où vous souhaitez imprimer la sortie sans ajouter de nouvelle ligne. Dans ce tutoriel, nous verrons comment utiliser le paramètre end, le module sys et la concaténation de chaînes de caractères pour imprimer sans ajouter de nouvelle ligne.

Avant de commencer, je vous recommande de suivre le cours Introduction à Python de DataCamp pour apprendre les bases de Python pour la science et l'analyse des données. Consultez également notre tutoriel Un guide complet sur les sauts de ligne en Python pour en savoir plus sur le comportement inverse, qui consiste à utiliser \n pour ajouter des sauts de ligne dans les chaînes de caractères et les déclarations print().

Comment imprimer sans nouvelle ligne en Python

Pour imprimer sans ajouter de nouvelle ligne en Python, vous pouvez utiliser le paramètre end dans la fonction print(). Si vous donnez au paramètre end la valeur d'une chaîne vide, la sortie se poursuit sur la même ligne.

# Print without newline
print("Hello", end=" ")
print("World", end=" ")
Hello World

Notez que nous utilisons ici deux fonctions print(). Cela peut sembler inhabituel pour les débutants, mais c'est une technique importante. Chaque appel print() peut toujours contrôler sa propre sortie à l'aide du paramètre end. Dans cet exemple, le paramètre end=” “ ajoute un espace après chaque chaîne de caractères au lieu d'une nouvelle ligne, ce qui permet à la deuxième déclaration print() de se poursuivre sur la même ligne.

Cette approche est particulièrement utile lorsque vous devez imprimer plusieurs morceaux de texte ou variables au fil du temps, mais que vous souhaitez qu'ils apparaissent tous sur la même ligne avec un formatage spécifique (comme des espaces ou de la ponctuation entre eux).

Pourquoi imprimer sans nouvelle ligne en Python ?

En Python, l'impression sans nouvelle ligne consiste à contrôler la sortie de manière à ce qu'elle n'ajoute pas le caractère de nouvelle ligne \n après chaque appel à print(). Il est important de comprendre comment modifier ce comportement pour créer des sorties contrôlées. Voici quelques exemples de cas où une production continue peut être nécessaire.

  • Indicateurs de progrès : Les mises à jour ou les barres de progression nécessitent des sorties continues pour un suivi en temps réel.
  • Enregistrement : L'enregistrement et le contrôle nécessitent également une impression en lignes continues pour une meilleure lisibilité.
  • Applications pour consoles interactives : L'affichage de certains résultats de l'utilisateur sur la même ligne améliore l'expérience de l'utilisateur.

Si vous souhaitez passer du contrôle de la sortie dans la console à la compréhension de l'ajout, de la gestion et de la suppression des caractères de nouvelle ligne dans le texte et les fichiers, rendez-vous sur notre site Python New Line : Méthodes de formatage du code tutoriel pour les techniques et les exemples.

Devenez un scientifique ML

Améliorez vos connaissances en Python pour devenir un scientifique spécialisé dans l'apprentissage automatique.
Commencez à apprendre gratuitement

Imprimer sans nouvelle ligne : Python 2 vs. Python 3

Pour vous assurer d'imprimer la sortie sans ajouter de nouvelle ligne, vous pouvez utiliser le paramètre end ou d'autres méthodes pour remplacer le comportement par défaut de la fonction print()

Utilisation du paramètre end dans Python 3

Dans la version 3 de Python, vous devez inclure le paramètre end dans chaque appel à la fonction print() pour imprimer sans ajouter de nouvelle ligne. Si vous donnez au paramètre end la valeur d'une chaîne vide, la sortie se poursuit sur la même ligne, comme le montre l'exemple ci-dessous.

Vous pouvez également attribuer au paramètre end un caractère ou une chaîne de caractères différents. L'exemple ci-dessous montre comment modifier le paramètre end dans plusieurs appels print() pour contrôler le formatage de la sortie.

# Print without newline
print("Hello ", end="World!")
print(" Learn DataCamp Python tutorial.")
Hello World! Learn DataCamp Python tutorial.

L'exemple suivant illustre l'utilisation du paramètre end avec une chaîne vide pour imprimer une mise à jour de l'état d'avancement sans nouvelle ligne. Dans cet exemple, \r renvoie le curseur au début de la ligne, ce qui permet de mettre à jour la sortie.

 # Import the time module, which provides time-related functions like sleep()
import time
# Loop over a range of numbers from 1 to 5 (inclusive)
for i in range(1, 6):
    # Print a loading message with a percentage that updates on the same line
    print(f"\rLoading... {i*20}%", end="")
    # Pause the execution for 1 second to simulate a loading delay
    time.sleep(1)
print("\nDone!")
Loading... 20%
Loading... 40%
Loading... 60%
Loading... 80%
Loading... 100%
Done!

Lorsque vous exécutez le code ci-dessus dans un environnement Python, vous remarquerez que le pourcentage de chargement se met à jour toutes les secondes sur la même ligne, créant ainsi un simple indicateur de progression. Consultez notre rubrique Écrire des fonctions en Python si vous avez besoin d'aide pour écrire des fonctions, comme celle de l'exemple ci-dessus.

Explorer le nouveau comportement des lignes dans Python 2

Dans Python 2, l'instruction print est différente et ajoute une nouvelle ligne par défaut. Vous pouvez ajouter une virgule à la fin de l'instruction print pour imprimer sans nouvelle ligne.

# Print without newline
print "Hello",
print "World"
Hello World

L'inconvénient de cette méthode est qu'un espace supplémentaire est ajouté entre les éléments imprimés, contrairement à Python 3, où vous pouvez contrôler les caractères à ajouter dans la sortie.

Autres techniques Python pour imprimer sans nouvelle ligne

Python propose quelques méthodes avancées pour imprimer sans nouvelle ligne. Ces méthodes sont principalement utilisées pour contrôler le rendement d'une impression complexe.

Combinaison des paramètres end et sep

Les paramètres end et sep peuvent être utilisés ensemble pour un formatage plus complexe. Dans de tels scénarios, le paramètre sep contrôle généralement la manière dont les éléments multiples sont séparés lorsqu'ils sont transmis à la fonction print(). L'exemple ci-dessous sépare les différentes chaînes par une virgule en utilisant le paramètre sep.

# Print without newline
print("Hello", "World", sep=", ", end="!")
Hello, World!

La combinaison des paramètres end et sep est utile dans des scénarios tels que le formatage de données tabulaires ou la création d'indicateurs de progression pour améliorer l'expérience de l'utilisateur en améliorant la présentation des données.

Utilisation du module sys

La fonction sys.stdout.write() du module sys offre une méthode pour imprimer sans ajouter automatiquement une nouvelle ligne. Cette méthode d'impression est généralement importante lorsqu'un contrôle précis de la sortie est nécessaire, par exemple pour la conception d'indicateurs de progression et l'affichage d'enregistrements en temps réel.

L'exemple ci-dessous montre comment imprimer sans nouvelle ligne à l'aide du module sys. Notez que nous avons utilisé la fonction sys.stdout.flush() pour vider manuellement la mémoire tampon de sortie afin de garantir l'affichage immédiat du texte. Cette approche est importante pour les boucles d'affichage et les applications en temps réel.

# Import the sys module
import sys
# Print without new line
sys.stdout.write("Hello, ")
sys.stdout.write("World!")
sys.stdout.flush()
Hello, World!

La concaténation de chaînes de caractères comme approche alternative

La concaténation de chaînes peut également être utilisée pour joindre plusieurs sorties avant l'impression, ce qui évite de devoir utiliser plusieurs instructions print() et garantit qu'aucune nouvelle ligne n'est ajoutée entre les sorties. L'exemple ci-dessous illustre cette méthode de concaténation de chaînes de caractères pour imprimer une sortie en une seule instruction.

# Print without new line using string concatenation
output = "Hello" + " " + "World." + " Learn Python."
print(output)
Hello World. Learn Python.

Conclusion

L'impression sans nouvelle ligne est utile pour afficher les résultats sur une seule ligne continue. Selon votre version de Python, celui-ci propose différentes méthodes d'impression sans ajout de ligne.

Si vous cherchez à améliorer vos compétences en Python, je vous recommande de suivre le cours Python Toolbox de DataCamp, qui enseigne les itérateurs et les boucles, ce qui a été laissé entendre dans cet article. Nos cursus de carrière de développeur Python et d'analyste de données avec Python vous aideront à rester à jour tout en acquérant des compétences pratiques et professionnelles en tant que scientifique ou analyste de données.

Devenez un scientifique ML

Maîtriser Python pour devenir un scientifique de l'apprentissage automatique

Allan Ouko's photo
Author
Allan Ouko
LinkedIn
Je crée des articles qui simplifient la science des données et l'analyse, en les rendant faciles à comprendre et accessibles.

Questions fréquemment posées sur Python

Comment imprimer sans nouvelle ligne en Python ?

Vous pouvez inclure le paramètre end avec une chaîne vide dans la fonction print() pour imprimer sans ajouter de nouvelle ligne.

Quel est le comportement par défaut de la fonction print() ?

Par défaut, la fonction print() ajoute une nouvelle ligne après chaque sortie.

La méthode Python print without a new line est-elle supportée dans Python 2 et 3 ?

Dans Python 3, vous pouvez utiliser le paramètre end dans la fonction print() pour imprimer sans nouvelle ligne. Dans Python 2, vous devez ajouter une virgule après l'instruction print pour imprimer sans nouvelle ligne.

Pourquoi est-ce que j'obtiens un espace supplémentaire dans la sortie après avoir utilisé le séparateur à virgule dans Python 2 ?

Dans Python 2, un espace supplémentaire est ajouté par défaut entre les éléments imprimés après avoir utilisé la virgule pour imprimer sans nouvelle ligne. Je vous recommande d'utiliser d'autres méthodes pour contrôler les caractères ajoutés dans la sortie.

L'impression sans saut de ligne affecte-t-elle les performances ?

L'impression sans nouvelle ligne n'a qu'un impact minime sur les performances. Vous pouvez utiliser le module sys.stdout.write() du module sys pour améliorer les performances lors du traitement de données volumineuses.

Sujets

Apprenez Python avec DataCamp

Certification disponible

cours

Boîte à outils Python

4 hr
277.6K
Continuez à développer vos compétences en science des données modernes en vous familiarisant avec les itérateurs et les compréhensions de listes.
Afficher les détailsRight Arrow
Commencer le cours
Voir plusRight Arrow