برنامه نویسی ۳۰۶۵ بازدید

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

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

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

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

import time

print("Printed immediately.")
time.sleep(2.4)
print("Printed after 2.4 seconds.")

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

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

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

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

import time

while True:
  localtime = time.localtime()
  result = time.strftime("%I:%M:%S %p", localtime)
  print(result)
  time.sleep(1)

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

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

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

import time

while True:
  localtime = time.localtime()
  result = time.strftime("%I:%M:%S %p", localtime)
  print(result, end="", flush=True)
  print("\r", end="", flush=True)
  time.sleep(1)

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

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

فیلم آموزشی مرتبط

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

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

import threading 
  
def print_hello_three_times():
  for i in range(3):
    print("Hello")
  
def print_hi_three_times(): 
    for i in range(3): 
      print("Hi") 

t1 = threading.Thread(target=print_hello_three_times)  
t2 = threading.Thread(target=print_hi_three_times)  

t1.start()
t2.start()

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

Hello
Hello
Hi
Hello
Hi
Hi

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

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

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

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

import threading 
import time
  
def print_hello():
  for i in range(4):
    time.sleep(0.5)
    print("Hello")
  
def print_hi(): 
    for i in range(4): 
      time.sleep(0.7)
      print("Hi") 

t1 = threading.Thread(target=print_hello)  
t2 = threading.Thread(target=print_hi)  
t1.start()
t2.start()

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

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

^^

بر اساس رای ۱۰ نفر
آیا این مطلب برای شما مفید بود؟
شما قبلا رای داده‌اید!
اگر بازخوردی درباره این مطلب دارید یا پرسشی دارید که بدون پاسخ مانده است، آن را از طریق بخش نظرات مطرح کنید.

«الهام حصارکی»، فارغ‌التحصیل مقطع کارشناسی ارشد مهندسی فناوری اطلاعات، گرایش سیستم‌های اطلاعات مدیریت است. او در زمینه هوش مصنوعی و داده‌کاوی، به ویژه تحلیل شبکه‌های اجتماعی، فعالیت می‌کند.

یک نظر ثبت شده در “تابع ()sleep در پایتون — به زبان ساده

  • محمد مرادی — says: ۲۹ آذر، ۱۳۹۸ در ۲:۴۱ ب٫ظ

    import time

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

نظر شما چیست؟

نشانی ایمیل شما منتشر نخواهد شد.

مشاهده بیشتر