Python: éviter la nouvelle ligne avec la commande print [dupliquer]
cette question a déjà une réponse ici:
- comment imprimer sans newline ni espace? 25 réponses
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.
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()
.
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
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é.
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')
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).