【Python自學】sleep()函數,常用於倒計時、碼表的函數
📘 Python 自學|sleep() 函數
⏳ sleep() 是什麼?
sleep() 是 Python 內建模組 time 下面的函數,用來讓程式暫停執行一段時間。
函數全名是 time.sleep()。
它的參數是「要暫停的時間」,單位是秒。也可以照它的名字來理解:你要讓程式睡多久?
上面這行程式的意思,就是讓程式暫停 2 秒。
等到設定的秒數結束後,才會繼續執行下一行。
🧪 基本用法
使用 time.sleep() 之前,要先匯入 time 模組。
輸出結果
(等待 2 秒)
兩秒後繼續
這段程式的執行順序是:
- 先印出 開始。
- 執行 time.sleep(2),程式暫停 2 秒。
- 2 秒後,繼續印出 兩秒後繼續。
📌 常用案例
sleep() 在實務上很常見,尤其是倒數計時、Loading 效果、爬蟲間隔、測試等待時間等情境。
1. 倒數計時器
第一個常見用途,就是製作倒數計時器。
程式說明
這行代表從 5 開始倒數到 1。
其中 -1 代表每次減少 1,所以會形成倒數效果。
輸出效果
(等待 1 秒)
4
(等待 1 秒)
3
(等待 1 秒)
2
(等待 1 秒)
1
(等待 1 秒)
時間到!
2. 做出 Loading 動畫感
sleep() 也很適合拿來做簡單的 Loading 效果,例如讓點點一個一個出現。
程式呈現效果
載入完成!(跑完 5 次之後出現)
這裡用到 end="",意思是印完文字後不要自動換行。
所以每次印出的 . 都會接在「載入中」後面,形成 Loading 的感覺。
sleep() 不一定只能放整數,也可以放小數。
3. 網路爬蟲避免被 Ban
在寫網路爬蟲時,sleep() 也很常用。
因為如果程式在短時間內對網站發送太多請求,有可能會被伺服器判定為異常流量,甚至被暫時封鎖。
這段程式的意思是:每爬一頁,就休息 1 秒。
4. 實驗數據、測試環境常用
sleep() 也可以用來測試等待時間,或模擬某段程式需要花費一段時間才會完成。
程式執行結果
實際等待時間: 3.0000832080841064
這裡的 time.time() 會取得目前時間。
所以可以先記錄開始時間,再記錄結束時間,最後用 end - start 算出實際經過多久。
🔎 sleep() 的重點觀念
sleep() 的功能很簡單,但有幾個觀念初學時很值得記起來。
| 重點 | 說明 | 範例 |
|---|---|---|
| 需要先 import | 因為 sleep 在 time 模組裡。 | import time |
| 單位是秒 | 傳入的數字代表暫停幾秒。 | time.sleep(2) |
| 可以使用小數 | 可以暫停半秒、0.1 秒等。 | time.sleep(0.5) |
| 會阻塞程式 | sleep 期間程式不會往下執行。 | 等時間結束才跑下一行。 |
⚠️ 注意:sleep() 會真的讓程式停住
這點很重要:sleep() 不是背景倒數,而是真的讓目前這段程式暫停。
如果需要「背景計時」或「一邊倒數一邊做其他事」,就不能只靠 sleep(),通常會需要使用 threading 或非同步處理。
例如一般簡單倒數計時器可以使用 sleep(),但如果你想讓程式一邊下載檔案、一邊倒數、一邊更新畫面,就需要更進階的做法。
✅ 小結
time.sleep() 是 Python 初學很常遇到、也很容易理解的時間控制函數。
- sleep():讓程式暫停指定秒數。
- time.sleep(2):暫停 2 秒。
- time.sleep(0.5):暫停 0.5 秒。
- import time:使用前要先匯入 time 模組。
- 倒數計時器:每秒印一次數字。
- Loading 效果:讓符號依序出現。
- 爬蟲間隔:避免太頻繁請求網站。
time.sleep(幾秒) = 讓程式睡幾秒,睡醒後再繼續執行下一行。
留言
張貼留言