HOWTO · Python

Imprimer des valeurs sans espaces entre les deux en Python

Apprenez à imprimer des valeurs sans espaces entre elles en Python : utilisez le paramètre sep de print(), les f-strings, str.format(), le formatage avec %, la concaténation et la substitution Template de chaînes.

Sur cette page

Lorsque vous passez plusieurs arguments à la fonction print() séparés par des virgules, print() les joint par défaut avec un espace, ce qui conduit parfois à des espaces inutiles entre les valeurs. Heureusement, Python offre plusieurs alternatives qui vous aident à contrôler cet espacement avec précision.

Dans ce guide, vous apprendrez les différentes méthodes pour imprimer sans espaces entre les valeurs en Python. Chaque méthode est illustrée par le même exemple continu, qui part de la forme à virgules ci-dessous :

x = 10
print('The number of mangoes I have is "', x, '"')

Sortie :

The number of mangoes I have is " 10 "

Notez les espaces inutiles entre le nombre 10 et les guillemets doubles qui l’entourent : un provient de chaque virgule. Le but de chaque méthode ci-dessous est de supprimer cet espacement excessif tout en imprimant les mêmes valeurs.

Utilisez le formatage de chaînes avec le signe modulo % pour imprimer des valeurs sans espaces entre elles en Python

Le signe %, également connu sous le nom d’opérateur de formatage de chaînes ou d’interpolation, est la plus ancienne méthode de formatage en Python. Un espace réservé tel que %d à l’intérieur de la chaîne marque l’endroit où va une valeur, et la valeur après l’opérateur % le remplace, de sorte qu’aucun séparateur n’est ajouté nulle part :

x = 10
print('The number of mangoes I have is "%d"' % x)

Sortie :

The number of mangoes I have is "10"

Ici, %d est l’espace réservé pour un entier. Lorsque la chaîne est construite, il est remplacé par la valeur de x, qui est 10, et le texte imprimé touche directement les guillemets. Ce style fonctionne toujours en Python 3, mais le code plus récent préfère généralement str.format() ou les f-strings.

Utilisez le formatage de chaînes avec la fonction str.format() pour imprimer des valeurs sans espaces entre elles en Python

Avec str.format(), les accolades {} à l’intérieur de la chaîne marquent les endroits où les valeurs sont substituées. La méthode a été introduite en Python 3 et gère efficacement le formatage complexe ; comme la chaîne terminée est un argument unique pour print(), aucun séparateur n’apparaît :

x = 10
print('The number of mangoes I have is "{}"'.format(x))

Sortie :

The number of mangoes I have is "10"

L’espace réservé {} se trouve à l’intérieur des guillemets doubles et est remplacé par la valeur de x lorsque la chaîne est affichée. Pour le nouveau code, str.format() est recommandé plutôt que l’ancien opérateur %.

Utilisez la concaténation de chaînes pour imprimer des valeurs sans espaces entre elles en Python

L’opérateur +, l’opérateur de concaténation de chaînes, joint les chaînes bout à bout et n’ajoute rien entre elles, ce qui en fait une alternative directe à la séparation par virgules :

x = 10
print('The number of mangoes I have is "' + str(x) + '"')

Sortie :

The number of mangoes I have is "10"

La concaténation ne fonctionne qu’entre chaînes, donc l’entier x est d’abord converti avec str(). Les morceaux forment alors une seule chaîne — 'The number of mangoes I have is "', '10' et '"' — et print() l’affiche telle quelle.

Utilisez la f-string pour le formatage de chaînes pour imprimer des valeurs sans espaces entre elles en Python

Python 3.6 a introduit les f-strings, qui intègrent des expressions directement dans un littéral de chaîne. Elles sont également plus rapides que les deux autres méthodes de formatage ci-dessus, car les valeurs sont évaluées au fur et à mesure que la chaîne est construite :

x = 10
print(f'The number of mangoes I have is "{x}"')

Sortie :

The number of mangoes I have is "10"

Le préfixe f avant la chaîne la transforme en f-string, et le {x} à l’intérieur est remplacé par la valeur de x lorsque le code s’exécute. Comme la variable se trouve exactement là où son texte doit apparaître, le résultat est concis, lisible et dépourvu d’espaces supplémentaires.

Utilisez le paramètre sep de l’instruction print pour imprimer des valeurs sans espaces entre elles en Python

Si vous voulez conserver les arguments séparés par des virgules, changez ce que print() met entre eux. Le paramètre sep, disponible en Python 3, est le séparateur inséré entre les arguments ; par défaut, c’est un seul espace :

x = 10
print('The number of mangoes I have is "', x, '"', sep="")

Sortie :

The number of mangoes I have is "10"

Définir sep sur la chaîne vide "" indique à print() de joindre les parties — le texte jusqu’au guillemet d’ouverture, la valeur de x et le guillemet de fermeture — sans rien entre elles. C’est le plus petit changement par rapport à la forme originale à virgules : les arguments restent les mêmes, et seul le séparateur est supprimé.

Interpolation de chaînes à l’aide de chaînes Template pour imprimer des valeurs sans espaces entre elles en Python

La classe string.Template de Python interpole des valeurs dans une chaîne modèle : les espaces réservés commençant par $ sont substitués par les valeurs que vous fournissez, et rien n’est ajouté autour d’elles :

from string import Template

x = 10
template = Template('The number of mangoes I have is "$x"')
result = template.substitute(x=x)
print(result)

Sortie :

The number of mangoes I have is "10"

Ici, $x est l’espace réservé pour la valeur de x. Appeler template.substitute(x=x) le remplace par 10, et print(result) affiche la chaîne terminée exactement — The number of mangoes I have is "10", sans guillemets ni espaces ajoutés. Les chaînes Template sont le plus souvent utilisées lorsque le modèle lui-même provient d’un utilisateur ou d’un fichier, car leurs règles de substitution sont délibérément simples.

Conclusion

Les espaces de l’exemple original proviennent de print() lui-même : avec des arguments séparés par des virgules, il insère le séparateur sep, qui par défaut est un espace. Vous pouvez les supprimer en changeant le séparateur (sep=""), en construisant la chaîne entière avant l’impression (avec une f-string, str.format(), l’opérateur %, la concaténation ou un string.Template), ou en combinant les deux idées. Pour le code quotidien, la f-string est l’option la plus lisible, tandis que sep="" est la correction la plus rapide lorsque les arguments sont déjà en place.