Python: éviter la nouvelle ligne avec la commande print [dupliquer]

cette question a déjà une réponse ici:

j'ai commencé à programmer aujourd'hui et j'ai ce problème avec Python. C'est assez stupide, mais je ne sais pas comment le faire. Lorsque j'utilise la commande imprimer, imprime tout ce que je veux et puis va à une ligne différente. Par exemple:

print "this should be"; print "on the same line"

devrait retourner:

cela devrait être sur la même ligne

mais au lieu de cela renvoie:

cela devrait être

sur la même ligne

plus précisément, j'ai essayé de créer un programme avec if qui m'a dit si un nombre était un 2 ou non

def test2(x):
    if x == 2:
        print "Yeah bro, that's tottaly a two"
    else:
        print "Nope, that is not a two. That is a (x)"

mais il ne reconnaît pas le dernier (x) comme la valeur entrée, et imprime plutôt exactement:" (x) " (la lettre avec les parenthèses). Pour que ça marche, je dois écrire:

print "Nope, that is not a two. That is a"; print (x)

et si par exemple j'entre test2(3) qui donne:

non, ce n'est pas un deux, c'est un

3

donc soit je dois faire en sorte que Python reconnaisse mon (x) à l'intérieur d'une ligne d'impression comme le nombre; ou pour imprimer deux choses distinctes mais sur la même ligne. Merci d'avance et désolé pour ces question stupide.

NOTE IMPORTANTE : j'utilise version 2.5.4

une autre note: si j'ai mis print "Thing" , print "Thing2" il est écrit" erreur de syntaxe " sur la deuxième impression.

113
demandé sur Ghost4Man 2012-06-29 21:09:34

5 réponses

Dans Python 3.x , vous pouvez utiliser l'argument end de la fonction print() pour empêcher l'impression d'un caractère newline:

print("Nope, that is not a two. That is a", end="")

Dans Python 2.x , vous pouvez utiliser une virgule:

print "this should be",
print "on the same line"

vous n'avez pas besoin de cela pour simplement imprimer une variable, bien que:

print "Nope, that is not a two. That is a", x

noter que la virgule à la fin résulte toujours dans un espace imprimé en fin de ligne, c'est-à-dire équivalent à l'utilisation de end=" " en Python 3. Pour supprimer le caractère d'espace, vous pouvez soit utiliser

from __future__ import print_function

pour accéder à la fonction d'impression Python 3 ou utilisez sys.stdout.write() .

165
répondu Sven Marnach 2017-11-28 08:46:11

Dans Python 2.x mettez juste un , à la fin de votre déclaration print . Si vous voulez éviter l'espace vide que print met entre les articles, utilisez sys.stdout.write .

import sys

sys.stdout.write('hi there')
sys.stdout.write('Bob here.')

donne:

hi thereBob here.

noter qu'il y a aucune nouvelle ligne ou espace vide entre les deux chaînes.

Dans Python 3.x , avec sa fonction print () , vous pouvez juste dire

print('this is a string', end="")
print(' and this is on the same line')

et obtenir:

this is a string and this is on the same line

il y a aussi un paramètre appelé sep que vous pouvez définir dans print avec Python 3.x pour contrôler comment les chaînes contiguës seront séparées (ou non en fonction de la valeur attribuée à sep )

par exemple,

Python 2.x

print 'hi', 'there'

donne

hi there

Python 3.x

print('hi', 'there', sep='')

donne

hithere
117
répondu Levon 2012-06-29 17:46:41

si vous utilisez Python 2.5, cela ne marchera pas, mais pour les personnes utilisant 2.6 ou 2.7, essayez

from __future__ import print_function

print("abcd", end='')
print("efg")

résultats dans

abcdefg

pour ceux qui utilisent 3.x, ce qui est déjà intégré.

23
répondu Hugh Bothwell 2012-06-29 17:18:07

il Vous suffit de faire:

print 'lakjdfljsdf', # trailing comma

Toutefois, dans:

print 'lkajdlfjasd', 'ljkadfljasf'

il y a des espaces blancs implicites (c'est-à-dire ' ' ).

vous avez aussi l'option de:

import sys
sys.stdout.write('some data here without a new line')
10
répondu Jon Clements 2012-06-29 17:16:08

utiliser une virgule pour empêcher la présentation d'une nouvelle ligne:

print "this should be"; print "on the same line"

devrait être:

print "this should be", "on the same line"

de plus, vous pouvez simplement attacher la variable étant passée à la fin de la chaîne désirée par:

print "Nope, that is not a two. That is a", x

vous pouvez également utiliser:

print "Nope, that is not a two. That is a %d" % x #assuming x is always an int

vous pouvez accéder à la documentation supplémentaire 1519150920 "concernant le formatage de chaîne en utilisant le % opérateur (modulo).

5
répondu RobB 2012-06-29 17:17:59