Python print end, sep y flush.

En este tutorial explicamos cómo imprimir en Python usando los comandos end, sep y flush (Python print). Los cuales nos ayudan a modificar ciertas características del comando Print, como no agregar una nueva línea después de usar el comando print, o separar varios textos con algún carácter o texto.

Resumen rápido Python end, sep y flush.

En este resumen rápido Python explicamos que son y cómo se usan los parámetros end, sep y flush al momento de imprimir con el comando print.

Nota: Puedes buscar resúmenes rápidos escribiendo en google: Resumen rápido Python “Comando a buscar”

Python print sep.

El parámetro sep del comando print en Python, nos ayuda cuando imprimimos múltiples valores separados por comas. Con el parámetro sep, podemos escribir algo entre esos valores.

print( “Tengo una”, “ ¿Quieres una ”,  “?”, sep = “Manzana”)

El resultado sería:

“Tengo 1 Manzana ¿Quieres una Manzana?”

Nota: Funciona con variables int y float sin necesidad de convertirlas a String.

Python print end.

El parámetro end del comando print en Python. Nos ayuda a cambiar el final del comando imprimir. Por default el final es un “\n”, por lo que el siguiente print iniciará en la siguiente línea. Con el parámetro end podemos modificar esto por el valor que queramos.

print( “Hola”, end = “ @ ”)
print(“Mundo”)

El resultado es:

“Hola @ Mundo”

No se fue a la siguiente línea.

Python print flush.

Se recomienda usarlo cuando usamos el comando end. Ya que al usarlo el buffer ya no se vacía (flush), por lo tanto para asegurar que el comando print imprima en cuanto lo llamemos, se recomienda usar el comando flush = True.

Esto se entiende mejor si contamos elementos pero con un tiempo de espera, así veremos que sin Flush=True, el comando print se actualizará hasta el final.

import time
print("Números: ")
for i in range(8):
    time.sleep(0.5)
    print(i, end=" ",  flush=True)

Ese código pruébalo con flush=True y flush = False y ahí versa la diferencia.

 

Ejemplos para imprimir en Python.

Ya explicamos en el resumen rápido como funcionan estos parámetros del comando print. Ahora vemos a ver unos ejemplos para explicar un poco más a detalle su funcionamiento.

 

El parámetro print sep.

Este comando nos ayuda a elegir que texto va a separar diferentes textos. Por ejemplo, si tenemos una lista de frutas, y queremos imprimirlas separadas por un guion “-”.

Pero también funciona con números y con String, no necesitamos convertir si usamos el parámetro sep para separarlos. Veamos los siguientes 2 ejemplos.

print("Fresa","Platano","Naranja","Manzana","Pera","Uva","Sandia", sep="-")

print("Hola tengo", 20, "años", "mido", 1.77,"m", sep=" ")

El resultado es:

Python print sep

En el segundo caso, tenemos String, int y float, pero los imprimimos sin la necesidad de convertirlos todos a String, además cada uno no tiene espacio, el espacio se lo agregamos con el parámetro sep=” ”.

 

El comando print end en Python.

Por default el comando print tiene un “\n” al final. Por eso al usar otra vez el comando print iniciará en la siguiente línea.

Pero al usar este parámetro el buffer no se vacía, por lo que al imprimir con ciclos o si notamos algo raro. Debemos usar el comando flush=True, para vaciar el buffer.

Con el parámetro end, podemos cambiar ese final por lo que queramos.

print("Hola")
print("Mundo")

print("\nHola", end=" ")
print("Mundo")

print("\nHola", end=" :P ")
print("Mundo")

Python print end

 

El comando print flush Python.

Se usa cuando usamos el comando end. Un ejemplo muy claro es el siguiente:

import time

print("Números: ")
for i in range(8):
    time.sleep(0.5)
    print(i, end=" ",  flush=True)

Gracias a time.sleep(0.5), cada ciclo del for durará medio segundo. Por lo tanto, deberíamos ver que se imprime primero el 0, luego el 1 y así sucesivamente, hasta tener como resultado:

0 1 2 3 4 5 6 7

Y así es como funciona.

Pero si cambiamos flush = False.

import time

print("Números: ")
for i in range(8):
    time.sleep(0.5)
    print(i, end=" ",  flush=False)

Entonces no se actualizará cada vez que el ciclo for ejecuta un ciclo, sino que se esperará hasta que termine el ciclo for para imprimir todo el resultado.

Python print flush

Para más tutoriales de Python ve a este enlace.

Algunos temas que te pueden interesar:

Python unique, todos los valores de un array sin repetirse.

Concatenar en Python (+, %, *, f string)

Python reshape array numpy, redimensionar de un arreglo.