views:

47

answers:

1

I am trying to this function:

def sleep(sec):
    for i in range(sec):
        print(".", end=" ");
        time.sleep(1);

the problem is that it waits for the for loop to finish then it prints everything. If I use the normal print with \n in the end everything works as it should. But with the end=" " it does not.

+3  A: 

The stdout is line buffered. You need to flush the output manually.

import sys

def sleep(sec):
    for i in range(sec):
        print(".", end=" ")
        sys.stdout.flush()
        time.sleep(1)
KennyTM