1. ホーム
  2. python

[解決済み] whileループをn時間後に停止させるには?

2023-05-13 05:06:30

質問

whileループを5分後に停止させたいのですが、どうすればよいでしょうか。

while true:
    test = 0
    if test == 5:
        break
    test = test - 1

このコードでは無限ループに陥ってしまいます。

どのように解決するのですか?

以下を試してみてください。

import time
timeout = time.time() + 60*5   # 5 minutes from now
while True:
    test = 0
    if test == 5 or time.time() > timeout:
        break
    test = test - 1

また、ここで短いスリープを追加して、このループがCPUを占有しないようにすることもできます(たとえば time.sleep(1) のようにループの最初か最後に追加することもできます。)