125 votes

Impression sans saut de ligne (imprimer ' un ',) imprime un espace, comment faire pour supprimer ?

J’ai ce code :

Je veux de sortie , sans comme ceci :

Est-ce possible ?

132voto

marcog Points 39356

Il y a un certain nombre de façons d'atteindre vos résultats. Si vous êtes désireux juste une solution pour votre cas, l'utilisation de la chaîne de multiplication comme @Ant mentionne. Ce n'est que d'aller travailler si chacun de vos print états imprime la même chaîne. Notez que cela fonctionne pour la multiplication de la longueur de la chaîne (par exemple, 'foo' * 20 travaux).

>>> print 'a' * 20
aaaaaaaaaaaaaaaaaaaa

Si vous voulez faire cela, en général, de construire une chaîne de caractères, puis l'imprimer une fois. Cela permettra de consommer un peu de mémoire pour la chaîne, mais seulement de faire un seul appel à l' print. Notez que la concaténation de chaîne à l'aide de += est maintenant linéaire en la taille de la chaîne que vous êtes en concaténant donc, ce sera rapide.

>>> for i in xrange(20):
...     s += 'a'
... 
>>> print s
aaaaaaaaaaaaaaaaaaaa

Ou vous pouvez le faire plus directement à l'aide de sys.la sortie standard stdout.write(), qui print est un wrapper autour de. Cela permettra d'écrire uniquement la chaîne brute de la donner, sans aucune mise en forme. Notez qu'aucun retour à la ligne est imprimé, même à la fin de la 20 as.

>>> for i in xrange(20):
...     sys.stdout.write('a')
... 
aaaaaaaaaaaaaaaaaaaa>>> 

Python 3 changements de l' print énoncé en fonction print() , qui permet de définir une end paramètre. Vous pouvez l'utiliser dans >=2.6 par l'importation à partir d' __future__. J'aimerais éviter ce grave 2.x code si, comme cela va être un peu déroutant pour ceux qui n'ont jamais utilisé de 3.x. Cependant, elle devrait vous donner un avant-goût de certains de la bonté de 3.x apporte.

>>> from __future__ import print_function
>>> for i in xrange(20):
...     print('a', end='')
... 
aaaaaaaaaaaaaaaaaaaa>>> 

119voto

Antoine Pelisse Points 5067

De http://docs.python.org/whatsnew/2.6.html#pep-3105-print-as-a-function

Évidemment, qui ne fonctionne qu’avec python 2.6 ou version ultérieure.

41voto

Pär Wieslander Points 11258

Vous pouvez supprimer l’espace en imprimant une chaîne vide à stdout entre les `` des déclarations.

Toutefois, une solution plus propre est d’abord construire toute la chaîne que vous souhaitez imprimer et ensuite sortir avec un seul `` déclaration.

34voto

Lucas Moeskops Points 3200

Vous pouvez imprimer un caractère de retour arrière ( `` ) :

résultat :

30voto

codeape Points 38576

Python 3.x :

Python 2.6 ou 2.7 :

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X