Saltar al contenido principal

Impresión Python sin nueva línea: Lo que debes saber

Controla la salida de impresión de Python para evitar nuevas líneas automáticas. Aprende a anular el comportamiento predeterminado de la nueva línea utilizando el parámetro fin, el módulo sys y la concatenación de cadenas.
Actualizado 22 ago 2024  · 7 min de lectura

La función print() de Python se utiliza habitualmente para mostrar la salida en la consola. Por defecto, la función print() de Python añade un carácter de nueva línea al final de su salida, haciendo que la siguiente salida comience en una nueva línea. 

Aunque este comportamiento es conveniente en algunos escenarios, es importante comprender los casos en los que quieres imprimir la salida sin añadir una nueva línea. En este tutorial, veremos cómo utilizar el parámetro end, el módulo sys y la concatenación de cadenas para imprimir sin añadir una nueva línea.

Antes de empezar, te recomiendo que sigas el curso de Introducción a Python de DataCamp para aprender los fundamentos de Python para la ciencia y el análisis de datos. Consulta también nuestro tutorial Una guía completa sobre cómo hacer saltos de línea en Python para aprender el comportamiento opuesto, que es utilizar \n para añadir saltos de línea en cadenas y sentencias print().

Cómo imprimir sin una nueva línea en Python

Para imprimir sin añadir una nueva línea en Python, puedes utilizar el parámetro end en la función print(). Si estableces el parámetro end en una cadena vacía, la salida continúa en la misma línea.

# Print without newline
print("Hello", end=" ")
print("World", end=" ")
Hello World

Observa que aquí utilizamos dos funciones print(). Esto puede parecer inusual para los principiantes, pero es una técnica importante. Cada llamada a print() puede seguir controlando su propia salida utilizando el parámetro end. En este ejemplo, al configurar end=” “ se añade un espacio después de cada cadena en lugar de una nueva línea, lo que permite que la segunda sentencia print() continúe en la misma línea.

Este enfoque es especialmente útil cuando necesitas imprimir varios fragmentos de texto o variables a lo largo del tiempo, pero quieres que aparezcan todos en la misma línea con un formato específico (como espacios o signos de puntuación entre ellos).

¿Por qué imprimir sin una nueva línea en Python?

En Python, imprimir sin una nueva línea se refiere a controlar la salida de forma que no añada el carácter de nueva línea \n después de cada llamada a print(). Entender cómo anular este comportamiento es importante para crear salidas controladas. Los siguientes son algunos de los ejemplos en los que puede ser necesaria una salida continua.

  • Indicadores de progreso: Las actualizaciones o barras de progreso requieren salidas continuas para la supervisión en tiempo real.
  • Registro: El registro y la supervisión también requieren la impresión en líneas continuas para mejorar la legibilidad.
  • Aplicaciones interactivas de consola: Mostrar algunas salidas de usuario en la misma línea mejora la experiencia del usuario.

Si te interesa pasar de controlar la salida en la consola a comprender cómo añadir, gestionar y eliminar caracteres de nueva línea en texto y archivos, visita nuestra página Python New Line: Métodos para dar formato al código tutorial de técnicas y ejemplos.

Imprimir sin línea nueva: Python 2 vs. Python 3

Para asegurarte de que imprimes la salida sin añadir una nueva línea, puedes utilizar el parámetro end u otros métodos para anular el comportamiento por defecto de la función print()

Utilizar el parámetro final en Python 3

En la versión 3 de Python, debes incluir el parámetro end en cada llamada a la función print() para imprimir sin añadir una nueva línea. Si estableces el parámetro end en una cadena vacía, la salida continúa en la misma línea, como se muestra en el ejemplo siguiente.

También puedes establecer el parámetro end en un carácter o cadena diferente. El siguiente ejemplo muestra cómo modificar el parámetro end en varias llamadas a print() para controlar cómo se formatea la salida.

# Print without newline
print("Hello ", end="World!")
print(" Learn DataCamp Python tutorial.")
Hello World! Learn DataCamp Python tutorial.

El siguiente ejemplo ilustra el uso del parámetro end con una cadena vacía para imprimir una actualización del progreso sin una nueva línea. En este ejemplo, \r devuelve el cursor al principio de la línea, permitiendo que la salida se actualice en su lugar.

 # Import the time module, which provides time-related functions like sleep()
import time
# Loop over a range of numbers from 1 to 5 (inclusive)
for i in range(1, 6):
    # Print a loading message with a percentage that updates on the same line
    print(f"\rLoading... {i*20}%", end="")
    # Pause the execution for 1 second to simulate a loading delay
    time.sleep(1)
print("\nDone!")
Loading... 20%
Loading... 40%
Loading... 60%
Loading... 80%
Loading... 100%
Done!

Cuando ejecutes el código anterior en un entorno Python, observarás que el porcentaje de carga se actualizará cada segundo en la misma línea, creando un sencillo indicador de progreso. Consulta nuestra sección Escribir funciones en Python si necesitas ayuda para escribir funciones, como la del ejemplo anterior.

Explorando el nuevo comportamiento de las líneas en Python 2

En Python 2, la sentencia print es diferente y añade una nueva línea por defecto. Puedes añadir una coma al final de la sentencia print para imprimir sin una nueva línea.

# Print without newline
print "Hello",
print "World"
Hello World

El inconveniente de este método es que se añade espacio extra entre los elementos impresos, a diferencia de Python 3, donde puedes controlar los caracteres que se añaden en la salida.

Otras técnicas Python para imprimir sin línea nueva

Python ofrece algunos métodos avanzados para imprimir sin una nueva línea. Estos métodos se utilizan principalmente para controlar la salida en impresiones complejas.

Combinar los parámetros fin y sep

Los parámetros end y sep pueden utilizarse juntos para un formato más complejo. En estos casos, el parámetro sep suele controlar cómo se separan varios elementos cuando se pasan a la función print(). El ejemplo siguiente separa las distintas cadenas mediante una coma utilizando el parámetro sep.

# Print without newline
print("Hello", "World", sep=", ", end="!")
Hello, World!

Combinar los parámetros end y sep es beneficioso en situaciones como formatear datos tabulares o crear indicadores de progreso para mejorar la experiencia del usuario mejorando la presentación de los datos.

Utilizar el módulo sys

La función sys.stdout.write() del módulo sys ofrece un método para imprimir sin añadir automáticamente una nueva línea. Este método de impresión suele ser importante cuando se necesita un control preciso de la salida, como para diseñar indicadores de progreso y mostrar registros en tiempo real.

El siguiente ejemplo muestra cómo imprimir sin una nueva línea utilizando el módulo sys. Ten en cuenta que hemos utilizado la función sys.stdout.flush() para vaciar manualmente el búfer de salida y asegurarnos de que el texto se muestra inmediatamente. Este enfoque es importante para mostrar bucles y aplicaciones en tiempo real.

# Import the sys module
import sys
# Print without new line
sys.stdout.write("Hello, ")
sys.stdout.write("World!")
sys.stdout.flush()
Hello, World!

La concatenación de cadenas como método alternativo

La concatenación de cadenas también se puede utilizar para unir varias salidas antes de imprimirlas, evitando la necesidad de varias sentencias print() y garantizando que no se añada ninguna línea nueva entre las salidas. El ejemplo siguiente muestra este método de concatenación de cadenas para imprimir la salida en una sola sentencia.

# Print without new line using string concatenation
output = "Hello" + " " + "World." + " Learn Python."
print(output)
Hello World. Learn Python.

Conclusión

Imprimir sin una nueva línea es útil para mostrar la salida en una sola línea continua. Dependiendo de tu versión de Python, Python ofrece distintos métodos de impresión sin añadir una nueva línea.

Si quieres mejorar tus conocimientos de Python, te recomiendo que sigas el curso Python Toolbox de DataCamp, en el que se enseñan los iteradores y los bucles, a los que se aludió en este artículo. Nuestras trayectorias profesionales de Desarrollador de Python y Analista de Datos con Python te ayudarán a mantenerte al día mientras adquieres habilidades prácticas y relacionadas con el trabajo como científico o analista de datos.

Preguntas frecuentes sobre Python

¿Cómo puedo imprimir sin una nueva línea en Python?

Puedes incluir el parámetro end con una cadena vacía en la función print() para imprimir sin añadir una nueva línea.

¿Cuál es el comportamiento por defecto de la función print()?

Por defecto, la función print() añade una nueva línea después de cada salida.

¿Está soportado en Python 2 y 3 el método print sin nueva línea?

En Python 3, puedes utilizar el parámetro end en la función print() para imprimir sin una nueva línea. En Python 2, debes añadir una coma después de la sentencia print para imprimir sin una nueva línea.

¿Por qué aparece un espacio de más en la salida después de utilizar el separador coma en Python 2?

En Python 2, se añade por defecto un espacio extra entre los elementos impresos después de utilizar la coma para imprimir sin una nueva línea. Te recomiendo que utilices otros métodos alternativos para controlar los caracteres añadidos en la salida.

¿Afecta al rendimiento imprimir sin una nueva línea?

Imprimir sin una nueva línea tiene un impacto mínimo en el rendimiento. Puedes utilizar la dirección sys.stdout.write() del módulo sys para mejorar el rendimiento al manejar datos de gran tamaño.

Temas

Aprende Python con DataCamp

curso

Python Toolbox

4 hr
277.2K
Continue to build your modern Data Science skills by learning about iterators and list comprehensions.
Ver detallesRight Arrow
Comienza El Curso
Ver másRight Arrow
Relacionado

tutorial

Python Nueva Línea: Métodos para dar formato al código

Descubre cómo utilizar \n para insertar saltos de línea en cadenas y sentencias print(). Utiliza el parámetro fin para mantener la salida en una sola línea. Mejora tus habilidades en el manejo de archivos con os.linesep para gestionar texto en distintos sistemas.
Samuel Shaibu's photo

Samuel Shaibu

8 min

tutorial

Función Print() de Python

Aprenda cómo puede aprovechar la capacidad de una simple función de impresión de Python de varias maneras con la ayuda de ejemplos.
Aditya Sharma's photo

Aditya Sharma

10 min

tutorial

Cómo recortar una cadena en Python: Tres métodos diferentes

Aprenda los fundamentos del recorte de caracteres iniciales y finales de una cadena en Python.
Adel Nehme's photo

Adel Nehme

5 min

tutorial

Tutorial de cadenas en Python

En este tutorial, aprenderás todo sobre las cadenas de Python: trocearlas y encadenarlas, manipularlas y darles formato con la clase Formatter, cadenas f, plantillas y ¡mucho más!
Sejal Jaiswal's photo

Sejal Jaiswal

16 min

tutorial

Tutorial sobre cómo ejecutar scripts en Python

Aprenda cómo puede ejecutar un script Python desde la línea de comandos, y también cómo puede proporcionar argumentos de línea de comandos a su script.
Aditya Sharma's photo

Aditya Sharma

10 min

tutorial

Formato f-string en Python

Conozca la técnica de formateo f-string en Python 3.6. En este tutorial, verá qué ventajas ofrece y repasará algunos casos de uso de ejemplo.
Hafeezul Kareem Shaik's photo

Hafeezul Kareem Shaik

5 min

See MoreSee More