while循环等待输入python

时间:2012-10-23 15:20:23

标签: python input while-loop pygame

我对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()

但是现在按下按钮没有任何反应。我错过了什么?

2 个答案:

答案 0 :(得分:0)

您需要的是非阻塞输入功能

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

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

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

答案 1 :(得分:0)

你可以使用curses.Excellent doc在这里: http://docs.python.org/dev/howto/curses.html#user-input