0

我对python中的while循环有疑问。我想制作一个在特定时间执行while循环的程序。我想添加一个额外的功能,即在程序运行时,可以通过按随机键来更改某个变量。

   from time import sleep
   import time
   i=0
   a=0
   while i<10:
       i=i+1
       i=i+a
       a=a+1
       time.sleep(1)
      print i

我想通过按任意键将变量a重置为0。如果没有按下任何按钮,循环应该继续不变。我应该添加什么命令?

谢谢编辑:我试过了:

import pygame
from pygame.locals import *
import time

i=0
a=0
pygame.init()
while i<10:
    pygame.event.get()
    i=i+a
    print i
    keys = pygame.key.get_pressed()
    if keys[K_ESCAPE]:
               i=0
    i=i+1
    time.sleep(1)
 pygame.quit()

但是现在当我按下按钮时什么也没有发生。我错过了什么?

4

2 回答 2

0

你需要的是一个非阻塞输入函数

while i<10:
    keys = pygame.key.get_pressed()
    etc
    ...

pygame 内置了各种事件的东西,所以不需要自己做所有艰苦的线程工作。

如果这对您不起作用,请查看:http ://www.darkcoding.net/software/non-blocking-console-io-is-not-possible/

于 2012-10-23T15:38:45.720 回答
0

你可以使用curses。优秀的文档在这里: http ://docs.python.org/dev/howto/curses.html#user-input

于 2012-10-23T16:20:01.930 回答