Python: Cómo imprimir sin nueva línea o espacio

En este tutorial, veremos cómo imprimir sin una nueva línea o espacio en Python, usando las funciones print() y write(), a través de ejemplos.

Introducción

La función print() en Python agrega una nueva línea a la salida cuando se muestra en el tty (teletipo, también conocido como terminal). Cuando no desea que su mensaje se muestre con líneas nuevas o con espacios, ¿cómo puede cambiar el comportamiento de imprimir ()?

Esto se puede lograr fácilmente modificando los valores predeterminados de los parámetros sep y end de la función print().

Impresión sin nueva línea

Hasta la versión 2.x de Python, print era una palabra clave reservada que actúa como una declaración especial. Desde la versión 3.x de Python, el comando imprimir se ha convertido en una función.

Esta versión de print() es capaz de tomar los siguientes argumentos:

Print function - syntax

Los valores (value1, value2) mencionados anteriormente pueden ser cualquier cadena o cualquiera de los tipos de datos como lista, flotante, cadena, etc. Los otros argumentos incluyen un separador (sep) que se usa para dividir los valores dados como argumentos mientras que el argumento end es el carácter de nueva línea \n por defecto. Esta es la razón por la que cada vez que se llama a la función print(), el cursor se desliza a la siguiente línea.

En Python 3.x, la forma más sencilla de imprimir sin una nueva línea es establecer el argumento fin como una cadena vacía, es decir, ''. Por ejemplo, intente ejecutar el siguiente fragmento en su intérprete de Python:

1
print("I am a sentence", "I am also a sentence")

El intérprete generaría lo siguiente:

1
2
I am a sentence I am also a sentence
>>>

Estamos imprimiendo dos cadenas, por lo que Python usará el valor de sep, un espacio en blanco por defecto, para imprimirlas juntas. Python también agrega un carácter de nueva línea al final, por lo que el indicador del intérprete va a la línea final.

Ahora modifique la declaración anterior para que se vea así:

1
print("I am a sentence", "I am also a sentence", sep="; ", end="")

Al ejecutarlo en el intérprete, obtendrá una salida similar a:

1
I am a sentence; I am also a sentence>>>

Aquí ocurrieron dos cosas: el separador entre las dos cadenas ahora también incluye un punto y coma. El indicador del intérprete también aparece en la misma línea porque eliminamos el carácter de nueva línea agregado automáticamente.

Impresión sin nueva línea en Python 2.X

Para versiones anteriores de Python, menos de 3 pero mayores de 2.6, puede importar print_function desde el módulo __future__. Esto anulará la palabra clave imprimir existente con la función imprimir() como se muestra a continuación:

1
2
3
from __future__ import print_function

print("I am a sentence", "I am also a sentence", sep="; ", end="")

Esto también producirá:

1
I am a sentence; I am also a sentence>>>

Así es como puede usar la función print() de la versión 3 de Python en Python 2.x.

Usando stdout.write()

El módulo sys tiene funciones integradas para escribir directamente en el archivo o en el tty. Esta función está disponible para las versiones de Python 2.x y 3.x. Podemos usar el método write() del objeto stdout del módulo sys para imprimir en la consola de esta manera:

1
2
3
import sys

sys.stdout.write("I am a line")

Ejecutemos esto y echemos un vistazo a la salida:

1
I am a line>>>

Aunque esto da el resultado de lo que estamos tratando de lograr, existen bastantes diferencias entre la función write() y la función print(). La función print() puede imprimir múltiples valores a la vez, puede aceptar valores que no sean cadenas y es más amigable para los desarrolladores.

Conclusión

En este artículo, hemos explorado las diferentes formas en que los valores se pueden imprimir sin un carácter de nueva línea/retorno de carro. Esta estrategia puede ser muy útil al imprimir los elementos en las salidas de los algoritmos, como un árbol binario o al imprimir los contenidos de una lista uno al lado del otro.

Licensed under CC BY-NC-SA 4.0