¿Cómo puedo suprimir la nueva línea después de una declaración de impresión?
Frecuentes
Visto 111,214 veces
63
Leí que para suprimir la nueva línea después de una declaración de impresión, puede poner una coma después del texto. El ejemplo aquí se parece a Python 2. ¿Cómo se puede hacer en Python 3?
Por ejemplo:
for item in [1,2,3,4]:
print(item, " ")
¿Qué necesita cambiar para que los imprima en la misma línea?
5 Respuestas
107
La pregunta dice: "¿Cómo se puede hacer en Python 3?"
Use esta construcción con Python 3.x:
for item in [1,2,3,4]:
print(item, " ", end="")
Esto generará:
1 2 3 4
Ver este Documento de Python para más información:
Old: print x, # Trailing comma suppresses newline
New: print(x, end=" ") # Appends a space instead of a newline
--
Aparte:
además, el print()
función también ofrece la sep
parámetro que permite especificar cómo deben separarse los elementos individuales que se van a imprimir. P.ej,
In [21]: print('this','is', 'a', 'test') # default single space between items
this is a test
In [22]: print('this','is', 'a', 'test', sep="") # no spaces between items
thisisatest
In [22]: print('this','is', 'a', 'test', sep="--*--") # user specified separation
this--*--is--*--a--*--test
contestado el 04 de mayo de 15 a las 14:05
¡Perfecto! Así que end="" simplemente anula el carácter de nueva línea. - Ci3
@ChrisHarris Vea la actualización con la cita de los documentos, por lo que está reemplazando la nueva línea con ""
(la cadena vacía) - Levon
Dondequiera que miro, todos dicen que hacer end='', pero obtengo: SyntaxError: sintaxis no válida - Thang
@thang ¿Qué versión de Python estás usando? Esto funciona para la versión 3.x - Levon
Para ser más específicos, es from __future__ import print_function
. - scott stafford
5
Código para Python 3.6.1
print("This first text and " , end="")
print("second text will be on the same line")
print("Unlike this text which will be on a newline")
Salida
>>>
This first text and second text will be on the same line
Unlike this text which will be on a newline
Respondido 03 Abr '17, 18:04
Esto aclaró cómo el parámetro end="" afectaría a la siguiente línea, pero no a la siguiente. ¡Gracias! - paulo raposo
4
print no hizo la transición de declaración a función hasta Python 3.0. Si está utilizando Python anterior, puede suprimir la nueva línea con una coma final como esta:
print "Foo %10s bar" % baz,
Respondido 21 Abr '15, 20:04
La pregunta se hizo específicamente sobre el uso de Python 3. - jose wright
0
Debido a que la función print() de python 3 permite la definición end="", eso satisface la mayoría de los problemas.
En mi caso, quería PrettyPrint y estaba frustrado porque este módulo no se actualizó de manera similar. Así que hice que hiciera lo que quería:
from pprint import PrettyPrinter
class CommaEndingPrettyPrinter(PrettyPrinter):
def pprint(self, object):
self._format(object, self._stream, 0, 0, {}, 0)
# this is where to tell it what you want instead of the default "\n"
self._stream.write(",\n")
def comma_ending_prettyprint(object, stream=None, indent=1, width=80, depth=None):
"""Pretty-print a Python object to a stream [default is sys.stdout] with a comma at the end."""
printer = CommaEndingPrettyPrinter(
stream=stream, indent=indent, width=width, depth=depth)
printer.pprint(object)
Ahora, cuando lo haga:
comma_ending_prettyprint(row, stream=outfile)
Obtuve lo que quería (sustitúyalo por lo que quiere: su millaje puede variar)
Respondido 03 Feb 16, 07:02
0
Hay alguna información sobre la impresión sin salto de línea aquí.
En Python 3.x podemos usar 'end=' en la función de impresión. Esto le dice que termine la cadena con un carácter de nuestra elección en lugar de terminar con una nueva línea. Por ejemplo:
print("My 1st String", end=","); print ("My 2nd String.")
Esto resulta en:
My 1st String, My 2nd String.
Respondido el 29 de enero de 20 a las 10:01
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas python python-3.x or haz tu propia pregunta.
Solo podrías hacer
print(' '.join([str(i) for i in [1, 2, 3, 4]]))
- anon582847382print(*[1, 2, 3, 4])
funciona para el caso común de imprimir una secuencia separada por espacios - John La RooyPublicación relacionada - ¿Cómo imprimir sin nueva línea o espacio?. La respuesta aceptada en este hilo cubre todas las versiones de Python. - RBT