I have multi loops in together and a sleep in the most inner loop. for example:
from time import sleep
for i in range(10):
print i,
for j in range(-5,5):
if j > 0:
print '.',
else:
print 'D',
sleep(1)
print ''
if you run the code, you may expected to get i
value after it D
sleep 1 second and another D
and again sleep until to the end.
but the result is difference, it waits 10 seconds and prints the whole line of 0 D D D D D D . . . .
and waiting again to printing next line.
I found the comma at the end of printing causes this problem. How can I solve it?
The while loop is not run because the condition is not met. After the running the for loop the value of variable i is 5, which is greater than three. To fix this you should reassign the value before running the while loop (simply add var i=1; between the for loop and the while loop).
You can stop an infinite loop with CTRL + C . You can generate an infinite loop intentionally with while True . The break statement can be used to stop a while loop immediately.
To loop through a set of code a specified number of times, we can use the range() function, The range() function returns a sequence of numbers, starting from 0 by default, and increments by 1 (by default), and ends at a specified number.
Because of existence of comma, the output buffers until a \n
.
You should flush the stdout
after every print or use sys.stdout.write
and flush buffer.
Define your print method:
import sys
def my_print(text):
sys.stdout.write(str(text))
sys.stdout.flush()
and at the end of line print a \n
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With