تابع ()sleep در پایتون — به زبان ساده

۲۵۸۰ بازدید
آخرین به‌روزرسانی: ۲۸ خرداد ۱۴۰۱
زمان مطالعه: ۲ دقیقه
تابع ()sleep در پایتون — به زبان ساده

«زبان برنامه نویسی پایتون» (Python Programming Language) دارای توابع بسیاری است که کاربردهای گوناگونی دارند. در این مطلب، به تابع ()sleep در پایتون پرداخته خواهد شد. برای مطالعه مباحث مقدماتی، مطلب «پایتون برای مبتدیان — به زبان ساده» توصیه می‌شود.

تابع ()sleep در پایتون

تابع ()sleep در پایتون اجرای «ریسه اجرایی» (Thread) کنونی را به اندازه مدت زمانی که بر حسب ثانیه به آن داده شده است، به تاخیر می‌اندازد. پایتون دارای یک ماژول با نام time است که دارای چندین تابع مفید برای مدیریت وظایف مرتبط با زمان است. در این راستا، یکی از توابع محبوب ()sleep است. تابع ()sleep اجرای ریسه کنونی را برای مدت زمان داده شده (به ثانیه)، به تاخیر می‌اندازد.

مثال ۱: ()sleep پایتون

1import time
2
3print("Printed immediately.")
4time.sleep(2.4)
5print("Printed after 2.4 seconds.")

روش کار قطعه کد بالا، در زیر بیان شده است:

  • «Printed immediately» چاپ می‌شود و منظور ان است که متن فورا چاپ شده است.
  • به مدت ۲.۴ ثانیه تاخیر در اجرا وجود داشته است.
  • «Printed after 2.4 seconds» در خروجی چاپ می‌شود و به معنای آن است که پس از ۲.۴ ثانیه تاخیر که با استفاده از دستور پیشین ایجاد شده، پیام چاپ شده است.

همانطور که می‌توان در مثال بالا مشاهده کرد، ()sleep یک عدد ممیز شناور را به عنوان آرگومان دریافت می‌کند.

مثال ۲: ساخت یک ساعت دیجیتال در پایتون

1import time
2
3while True:
4  localtime = time.localtime()
5  result = time.strftime("%I:%M:%S %p", localtime)
6  print(result)
7  time.sleep(1)

در برنامه بالا، زمان محلی کنونی درون یک حلقه بی‌نهایت محاسبه و چاپ می‌شود. سپس، برنامه به مدت ۱ ثانیه صبر می‌کند. مجددا، زمان محلی کنونی، محاسبه و چاپ می‌شود. این فرایند ادامه دارد. هنگامی که برنامه اجرا می‌شود، خروجی به صورت زیر خواهد بود.

02:10:50 PM
02:10:51 PM
02:10:52 PM
02:10:53 PM
02:10:54 PM
... .. ...

در ادامه، نسخه بهبود یافته قطعه کد بالا، ارائه شده است.

1import time
2
3while True:
4  localtime = time.localtime()
5  result = time.strftime("%I:%M:%S %p", localtime)
6  print(result, end="", flush=True)
7  print("\r", end="", flush=True)
8  time.sleep(1)

چند ریسمانی در پایتون

پیش از صحبت کردن پیرامون ()sleep در برنامه‌های چند ریسمانی، مباحثی پیرامون پردازش‌ها و ریسمان‌ها مورد بررسی قرار می‌گیرد. یک برنامه کامپیوتری، مجموعه‌ای از دستور‌العمل‌ها است. یک پردازش، در واقع اجرای این دستورالعمل‌ها است. ریسه زیرمجموعه‌ای از پردازش است. یک پردازش می‌تواند یک یا تعداد بیشتری ریسه داشته باشد.

مثال ۳: چند ریسمانی در پایتون

در ادامه، مثالی از برنامه پایتون چند ریسمانی ارائه شده است.

1import threading 
2  
3def print_hello_three_times():
4  for i in range(3):
5    print("Hello")
6  
7def print_hi_three_times(): 
8    for i in range(3): 
9      print("Hi") 
10
11t1 = threading.Thread(target=print_hello_three_times)  
12t2 = threading.Thread(target=print_hi_three_times)  
13
14t1.start()
15t2.start()

خروجی حاصل از اجرای برنامه به صورت زیر خواهد بود.

1Hello
2Hello
3Hi
4Hello
5Hi
6Hi

برنامه بالا، دارای دو ریسه t1 و t2 است. این ریسه‌ها با استفاده از دستورات ()t1.start و ()t2.start اجرا می‌شوند. توجه به این نکته لازم است که t1 و t2 هم‌زمان هستند و کاربر ممکن است خروجی‌های متفاوتی دریافت کند.

()time.sleep در برنامه‌های چند ریسمانی

تابع ()sleep اجرای برنامه برای ریسه کنونی را به مدت زمانی که به آن داده شده است (به ثانیه) به تاخیر می‌اندازد. در برنامه‌های تک‌ریسه‌ای، ()sleep اجرای ریسه و پردازش را معوق می‌کند. اگرچه، تابع، یک ریسه را به جای کل فرایند در برنامه‌های چند ریسمانی معوق می‌کند.

مثال ۴: ()sleep در برنامه‌نویسی چند ریسمانی

1import threading 
2import time
3  
4def print_hello():
5  for i in range(4):
6    time.sleep(0.5)
7    print("Hello")
8  
9def print_hi(): 
10    for i in range(4): 
11      time.sleep(0.7)
12      print("Hi") 
13
14t1 = threading.Thread(target=print_hello)  
15t2 = threading.Thread(target=print_hi)  
16t1.start()
17t2.start()

در برنامه بالا، دو ریسه وجود دارد. از (time.sleep(0.5 و (time.sleep(0.75 برای تعلیق اجرای این دو ریسمان به ترتیب به مدت ۰.۵ و ۰.۷ ثانیه استفاده شده است.

اگر نوشته بالا برای شما مفید بوده است، آموزش‌های زیر نیز به شما پیشنهاد می‌شوند:

^^

بر اساس رای ۱۶ نفر
آیا این مطلب برای شما مفید بود؟
اگر بازخوردی درباره این مطلب دارید یا پرسشی دارید که بدون پاسخ مانده است، آن را از طریق بخش نظرات مطرح کنید.
منابع:
Programiz
۲ دیدگاه برای «تابع ()sleep در پایتون — به زبان ساده»

تابع import چه کار مکنه؟
کتابخانه هارا فرا می خواند؟

import time

while True:
localtime = time.localtime()
result = time.strftime(“%I:%M:%S %p”, localtime)
print(result)
time.sleep(1)
چطوری میتونم این ساعت رو داخل ی تکست باکس نمایش بدم ؟؟

نظر شما چیست؟

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *