我是新手,并试图找出如何使用计时器和循环。我试图用计时器循环这个。你能帮助我吗?

时间:2016-08-25 04:21:11

标签: python loops timer python-2.x

for i in xrange(5):
  abc()
  time.sleep(3)
  print('?~~~~~')
  print('~?~~~~')
  print('~~?~~~')
  print('~~~?~~')
  print('~~~~?~')
  print('~~~~~?')
  print('?~~~~~')
  print('~?~~~~')
  print('~~?~~~')
  print('~~~?~~')
  print('~~~~?~')
  print('~~~~~?')

1 个答案:

答案 0 :(得分:0)

在这个答案中,我假设您想在计时器前进的同时沿着线移动问号,两者间隔三秒钟。

这段代码几乎需要完全重写。不要担心,这不是太糟糕,而且很容易修复。

这里首先出现的问题是您没有为time.sleep()导入时间模块。为此,您只需添加代码import time的顶部即可。其次,您不需要在代码中使用abs(),而Python也不理解它。第三,当你使用for循环或任何循环时,它会执行整个迭代,然后返回到下一个的开始,所以你的计时器只是每次打印时打印所有这些。它不会等待它流动,它只是每隔三秒打印一个波浪块。 在你当前的级别,我会使用一个简单的if和一个变量来测试它是什么迭代,因为你可能还不知道如何拼接。这是:

import time # importing time so time.sleep() works properly
iteration = 1 # Code to tell where the question mark is
for i in xrange(5):
    time.sleep(3)
    if iteration == 1: # asking if the variable is 1
        print('?~~~~~') # printing this
        iteration += 1 # adding one to the iteration variable
    elif iteration == 2:
        print('~?~~~~')
        iteration += 1
    elif iteration == 3:
        print('~~?~~~')
        iteration += 1
    elif iteration == 4:
        print('~~~?~~')
        iteration += 1
    elif iteration == 5:
        print('~~~~?~')
        iteration += 1
    elif iteration == 6:
        print('~~~~~?')
        iteration = 1

以下是使用拼接的版本

import time
iteration = 1
list = list('~~~~~~')
old_list = list
for i in xrange(5):
    time.sleep(3)
    list[iteration-1] = '?'
    print("".join(list))
    list = list('~~~~~~')
    if iteration == 6:
        iteration = 1
    else:
        iteration += 1

如果您需要教程,我建议您使用http://tutorialspoint.com/python/

否则,最初的Python教程很棒:https://docs.python.org/2/tutorial/