讀古今文學網 > 父與子的編程之旅:與小卡特一起學Python > 24.3 跟蹤時間 >

24.3 跟蹤時間

在很多仿真中,時間是一個重要的因素。有時我們希望時間加快,或者讓事情比真實世界中發生得更快,這樣就不必等待那麼長時間才能得出會發生什麼。有時可能希望慢下來,因為有些事情通常發生得太快讓人來不及觀察,通過讓時間減慢,就能更好地觀察這樣一些事情。有些時候則希望程序保持實時(real time)——就是與真實世界中保持一致。不論哪種情況,我們都需要用某種時鐘在程序中度量時間。

每個計算機都內置有一個時鐘,可以用來度量時間。前面我們已經見過幾個使用和度量時間的例子。

  • 在第 8 章,我們使用 time.sleep 函數建立了一個倒計時的定時器。

  • 在我們完成的幾個 Pygame 程序中,使用了 Pygame 的 time.delayclock.tick 函數來控制動畫速度或幀速率。還使用 get_fps 檢查動畫運行的快慢,這也是一種度量時間的方法(每一幀的平均時間)。

到目前為止,我們總是在程序運行時跟蹤時間,不過有時還需要在程序不運行時跟蹤時間。如果在 Python 中建立一個電子寵物(Virtual Pet)程序,你可能並不希望讓它一直都在運行。你會玩一會,然後停止程序,以後再玩。在你離開期間,寵物可能會累或者會餓,或者會去睡覺。所以程序需要知道從最後一次運行以來已經過去了多長時間。

要做到這一點,可以讓程序在關閉之前將信息(當前時間)保存到文件中。這樣一來,下一次啟動時,程序可以讀取這個文件,得到原來的時間,並檢查當前時間,比較這兩個時間從而得出從程序上一次運行以來已經過去了多長時間。

Python 提供了一種特殊的對象來處理時間和日期。我們將在下一節更詳細地學習 Python 的日期和時間對象。

術語箱

將當前時間保存到文件中以備以後讀取,這稱為一個時間戳(timestamp)。