Bạn có thể sử dụng Python sleep()
để thêm thời gian trễ vào mã của bạn.
Ví dụ: chức năng này rất hữu ích nếu bạn muốn tạm dừng mã của mình giữa các lệnh gọi API. Hoặc nâng cao trải nghiệm của người dùng bằng cách thêm các khoảng dừng giữa các từ hoặc đồ họa.
from time import sleep
sleep(2)
print("hello world")
Khi tôi chạy đoạn mã trên, sẽ có độ trễ khoảng hai giây trước khi bản in “hello world”.
Tôi gặp phải sự chậm trễ vì sleep()
dừng “thực thi chuỗi cuộc gọi” trong một số giây được cung cấp (mặc dù thời gian chính xác là gần đúng). Vì vậy, việc thực thi chương trình bị tạm dừng trong khoảng hai giây trong ví dụ trên.
Trong bài viết này, bạn sẽ tìm hiểu cách đặt mã Python ở chế độ ngủ.
Mô-đun thời gian của Python chứa nhiều hàm liên quan đến thời gian, một trong số đó là sleep()
. Để sử dụng chế độ ngủ (), bạn cần nhập nó.
from time import sleep
sleep() nhận một đối số: giây. Đây là lượng thời gian (tính bằng giây) mà bạn muốn trì hoãn mã của mình.
seconds = 2
sleep(seconds)
ngủ trong hành động
Bây giờ hãy sử dụng sleep()
theo một vài cách khác nhau.
Sau khi tôi nhập giấc ngủ từ time
module, hai dòng văn bản sẽ được in. Tuy nhiên, sẽ có độ trễ khoảng hai giây giữa việc in mỗi dòng.
from time import sleep
print("Hello")
sleep(2)
print("World")
Đây là những gì đã xảy ra khi tôi chạy mã:
"Hello"
Dòng này được in ngay lập tức.
Sau đó, có một sự chậm trễ khoảng hai giây.
"World"
Dòng này được in khoảng hai giây sau dòng đầu tiên.
Bạn có thể chính xác
Làm cho thời gian trễ của bạn trở nên cụ thể bằng cách chuyển một số dấu phẩy động tới sleep()
.
from time import sleep
print("Prints immediately.")
sleep(0.50)
print("Prints after a slight delay.")
Đây là những gì đã xảy ra khi tôi chạy mã:
"Prints immediately."
Dòng này được in ngay lập tức.
Sau đó, có một sự chậm trễ khoảng 0,5 giây.
"Prints after a slight delay."
Dòng này được in khoảng 0,5 giây sau dòng đầu tiên.
Tạo Dấu thời gian
Đây là một ví dụ khác để xem xét.
Trong đoạn mã dưới đây, tôi tạo năm dấu thời gian. tôi sử dụng sleep()
để thêm độ trễ khoảng một giây giữa mỗi dấu thời gian.
import time
for i in range(5):
current_time = time.localtime()
timestamp = time.strftime("%I:%m:%S", current_time)
time.sleep(1)
print(timestamp)
Ở đây, tôi nhập toàn bộ mô-đun thời gian để tôi có thể truy cập nhiều chức năng từ mô-đun đó, bao gồm cả chế độ ngủ().
import time
Sau đó, tôi tạo một vòng lặp for sẽ lặp lại năm lần.
for i in range(5):
...
Trên mỗi lần lặp lại, tôi nhận được thời gian hiện tại.
current_time = time.localtime()
Tôi nhận được dấu thời gian bằng một chức năng khác trong mô-đun thời gian, strftime()
.
timestamp = time.strftime("%I:%m:%S", current_time)
Tiếp theo là hàm sleep(), hàm này sẽ gây ra độ trễ trên mỗi lần lặp của vòng lặp.
time.sleep(1)
Khi tôi chạy chương trình, tôi đợi khoảng một giây trước khi dấu thời gian đầu tiên được in ra. Sau đó, tôi đợi khoảng một giây để in dấu thời gian tiếp theo, v.v. cho đến khi vòng lặp kết thúc.
Đầu ra trông như thế này:
04:08:37
04:08:38
04:08:39
04:08:40
04:08:41
sleep() và Trải nghiệm người dùng
Một cách khác để sử dụng sleep()
là nâng cao trải nghiệm của người dùng bằng cách tạo ra một số hồi hộp.
from time import sleep
story_intro = ["It", "was", "a", "dark", "and", "stormy", "night", "..."]
for word in story_intro:
print(word)
sleep(1)
Ở đây, tôi lặp qua danh sách các từ trong story_intro
. Để thêm hồi hộp, tôi sử dụng hàm sleep() để trì hoãn khoảng một giây sau khi mỗi từ được in.
time.sleep(1)
Mặc dù tốc độ thực thi thường là ưu tiên hàng đầu trong tâm trí chúng ta, nhưng đôi khi việc giảm tốc độ và thêm một khoảng dừng trong mã của chúng ta cũng đáng. Khi những dịp đó phát sinh, bạn biết phải đạt được điều gì và nó hoạt động như thế nào.
Tôi viết về việc học lập trình và những cách tốt nhất để thực hiện nó trên amymhaddad.com. Tôi tweet về lập trình, học tập và năng suất: @amymhaddad.