pythonのtime.sleep関数についてわからないことがあります。
import time import ctypes as ct try: while True: if ct.windll.user32.GetAsyncKeyState(0x2C) == 0x8000: print('スクリーンショット') time.sleep(1) elif ct.windll.user32.GetAsyncKeyState(0x1B) == 0x8000: print("Escが押されました") break except KeyboardInterrupt: print('終了')
以上のコードを実行し、PrintScreenを入力すると「スクリーンショット」と一回出力され、Escを入力すると終了します。
PrintScreenを入力すると1秒ごとに「スクリーンショット」が出力され無限ループすると思っていたのですが、一度きりでもう一度PrintScreenを入力すると再び「スクリーンショット」が出力されます。
試しにtime.sleep(1)の行を消して実行し、PrintScreenを入力すると「スクリーンショット」の無限ループが入ります。
1秒ごとに「スクリーンショット」を出力させるのが目的ではなく、無限ループしない理由を知りたいだけなのですが、何故この結果になるのでしょうか?
私のtime.sleep関数の理解が足りないだけなのかもしれませんが、どなたか理由がわかる方教えて下さい。
よろしくおねがいします。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。