在許多情況下,我們需要編寫一個永不停止的程序,例如服務器、監控程序、遊戲手柄輸入監視器等等。在Python中編寫這種程序非常容易,本文將介紹幾種方法。
一、使用while True循環
while True: # 程序代碼
這是編寫無限循環程序最常見和最容易理解的方法。通過將條件設置為True,while循環會一直循環直到程序被手動終止或者發生異常。
下面是一個簡單的例子,每隔1秒鐘輸出一句話:
import time while True: print("Hello!") time.sleep(1)
二、使用itertools.cycle()
Python的itertools模塊提供了一個cycle函數,可以將一個序列無限重複。我們可以使用這個函數來實現無限循環。
import itertools for item in itertools.cycle("Hello!"): print(item)
上面的代碼將會循環輸出Hello!,一直循環下去。
三、使用asyncio
Python3.4引入了asyncio庫,它使編寫高效異步程序變得非常容易。asyncio實現了一個事件循環,可以監視異步任務並在必要時調用它們的回調函數。
下面是一個簡單的使用asyncio的例子,它每隔1秒輸出一個隨機數:
import asyncio import random async def main(): while True: print(random.randint(0, 10)) await asyncio.sleep(1) asyncio.run(main())
四、使用signal模塊
Python的signal模塊提供了一種方式來處理UNIX信號。我們可以在程序中註冊一個信號處理函數,並在程序接收到指定的信號時執行該函數。
下面是一個示例程序,每隔1秒輸出一句話,在接收到信號SIGINT時程序退出:
import signal import time def handler(signum, frame): print("Received signal", signum) exit() signal.signal(signal.SIGINT, handler) while True: print("Hello!") time.sleep(1)
五、使用threading模塊
Python的threading模塊可以實現多線程編程。我們可以使用一個線程來執行主程序,並在必要時創建一個新的線程執行某些操作。下面是一個簡單的示例程序:
import threading import time def worker(): while True: print("Hello from worker!") time.sleep(1) thread = threading.Thread(target=worker) thread.start() while True: print("Hello!") time.sleep(1)
在本例中,主線程和工作線程將一直循環下去。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/181601.html