if (ans1 == answerkey):
print ("Correct. Good Job!!")
right += 1
else:
print ('Good try, here is the correct answers.')
x = answerkey
for i in range(1,initial_num2+1):
if (i == x):
print('[ >{}< ]'.format(i), end=' ')
else:
print('[{}]'.format(i), end=' ')
wrong += 1
time.sleep(15)
有人可以告诉我为什么在else语句下,它会在运行&#34; for i in range(1,initial_num2 + 1)之前睡15秒:&#34;循环?我唯一能想到的是&#34; end =&#39; &#39;&#34;导致问题,因为我试图在同一行上打印循环。
答案 0 :(得分:1)
print
function被缓冲,这意味着它有时会等到内部缓冲区在打印前填满数据。在将缓冲区刷新到控制台之前,它通常会等到它看到换行符,因此当您编写非常长的文本行(即文本中没有任何换行符)时,缓冲尤其明显。end
参数告诉print
函数不使用换行符来终止文本,而是使用你提供的任何内容。因为你要抑制换行符,所以Python不知道如何刷新你给print
函数的文本,直到程序在sleep
调用后终止。您可以通过将flush=True
添加到传递的参数列表中来强制刷新打印缓冲区。
同时查看this answer和this one。