¿Cómo puedo suprimir la nueva línea después de una declaración de impresión?

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?

preguntado el 24 de agosto de 12 a las 04:08

Solo podrías hacer print(' '.join([str(i) for i in [1, 2, 3, 4]])) -

print(*[1, 2, 3, 4]) funciona para el caso común de imprimir una secuencia separada por espacios -

Publicación relacionada - ¿Cómo imprimir sin nueva línea o espacio?. La respuesta aceptada en este hilo cubre todas las versiones de Python. -

5 Respuestas

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

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

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

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

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 or haz tu propia pregunta.