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

curses.Excellent doc を使用できます: http://docs.python.org/dev/howto/curses.html#user-input

于 2012-10-23T16:20:01.930 に答える
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 に答える