Python al final de la coma después de la impresión ejecuta la siguiente instrucción

Si se agrega una coma al final de una statement de impresión, la siguiente instrucción se ejecuta primero. ¿Por qué es esto? Por ejemplo, esto ejecuta 10000 ** 10000 antes de imprimir "Hi " :

 print "Hi", print 10000 ** 10000 

Y esto toma un tiempo antes de imprimir “Hola Hola”:

 def sayHello(): for i in [0] * 100000000: pass print "Hello" print "Hi", sayHello() 

  1. En Python 2.x, un final en una statement de print evita que se emita una nueva línea.

    • En Python 3.x, use print("Hi", end="") para lograr el mismo efecto.
  2. La salida estándar es de línea de búfer. Así que el "Hi" no se imprimirá antes de que se emita una nueva línea.

Estás viendo los efectos del almacenamiento en búfer stdout: Deshabilitar el almacenamiento en búfer de salida

Como otros lo mencionan, la salida estándar es amortiguada. Puede intentar usar esto en los puntos en los que necesita que aparezca la salida:

 sys.stdout.flush() 

imprimir automáticamente pone una nueva línea al final de una cadena. Esto no es necesariamente lo que queremos; por ejemplo, podemos querer imprimir varios datos por separado y hacer que todos aparezcan en una línea. Para evitar que se agregue la nueva línea, ponga una coma al final de la statement de impresión:

 d=6 print d, print d Output: 6 6