【问题标题】:While loop waiting for input pythonwhile循环等待输入python
【发布时间】:2012-10-13 14:01:30
【问题描述】:

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

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

【问题讨论】:

  • 在我看来你需要一个线程来做这样的事情——加上一个getch的实现。 (该食谱的食谱随处可见)。 1个线程在看到一些数据时调用getch并更新变量。另一个线程运行你的 while 循环。

标签: python input while-loop pygame


【解决方案1】:

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

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

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

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-05-03
      • 2016-07-22
      • 2016-07-19
      • 2015-07-18
      • 1970-01-01
      • 1970-01-01
      • 2021-08-14
      • 2012-05-20
      相关资源
      最近更新 更多