وقت الانتظار في Python()

مرحبًا بالجميع، آمل أن تتعلموا لغة Python جيدًا. في هذا البرنامج التعليمي، سنتعلم عن طريقة استخدام وظيفة النوم في Python. تنتمي وظيفة النوم في Python إلى وحدة الوقت (وحدة الوقت في Python) التي تمت مناقشتها مسبقًا

وظيفة النوم في Python

تُستخدم وظيفة النوم في Python لإضافة تأخير في تنفيذ البرنامج. يمكننا استخدام وظيفة النوم في Python لإيقاف تنفيذ البرنامج لفترة زمنية معينة بالثواني. يرجى ملاحظة أن وظيفة النوم في Python توقف فعليًا تنفيذ الخيط الحالي فقط، وليس البرنامج بأكمله.

بنية وظيفة النوم في Python

وظيفة النوم في Python هي طريقة في وحدة الوقت في Python. لذا، يجب علينا استيراد وحدة الوقت أولاً ثم يمكننا استخدام هذه الطريقة. طريقة استخدام وظيفة النوم في Python هي: حيث يكون الوسيط في طريقة النوم t بالثواني. وهذا يعني أنه عند تنفيذ البيان time.sleep(t) ثم سيتم تنفيذ السطر التالي من الكود بعد t ثانية. انظر إلى المثال التالي:

# استيراد وحدة الوقت
import time

print("Before the sleep statement")
time.sleep(5)
print("After the sleep statement")

إذا قمت بتشغيل الشفرة أعلاه، فسترى أن الطباعة الثانية تُنفذ بعد 5 ثوانٍ. لذا يمكنك إضافة تأخير في شفرتك كما هو مطلوب. يمكن أن يكون الوسيط بقيمة عشرية أيضًا للحصول على تأخير أكثر دقة. على سبيل المثال، إذا كنت ترغب في إضافة تأخير لمدة 100 مللي ثانية وهي 0.1 ثانية، كما يلي:

import time
time.sleep(0.100)

مثال على النوم في Python

دعونا نرى المثال التالي عن وظيفة وقت Python sleep.

import time
startTime = time.time()
for i in range(0,5):
   print(i)
   
# إضافة تأخير لمدة ثانية واحدة

   time.sleep(1)
endTime = time.time()
elapsedTime = endTime - startTime
print("Elapsed Time = %s" % elapsedTime)

هذا سينتج:

0
1
2
3
4
Elapsed Time = 5.059988975524902

الوقت المنقضي أكبر من 5 لأن التنفيذ يتوقف لمدة ثانية واحدة في كل دورة في الحلقة. الوقت الزائد يعود إلى وقت تنفيذ البرنامج، جدولة خيط نظام التشغيل وما إلى ذلك.

أوقات تأخير مختلفة لـ sleep() في Python

في بعض الأحيان قد تحتاج إلى تأخير لفترات زمنية مختلفة. يمكنك القيام بذلك كما يلي:

import time

for i in [ .5, .1, 1, 2]:
   print("Waiting for %s" % i , end='')
   print(" seconds")
   time.sleep(i)

هذا سينتج:

Waiting for 0.5 seconds
Waiting for 0.1 seconds
Waiting for 1 seconds
Waiting for 2 seconds

طباعة درامية باستخدام sleep()

يمكن أن تحتاج إلى طباعة رسالة بطريقة درامية، يمكنك فعل ذلك على النحو التالي:

# استيراد وحدة الوقت
import time
message = "Hi!!! I am trying to create suspense"

for i in message:
   # طباعة كل حرف من الرسالة
   print(i)
   time.sleep(0.3)

إذا قمت بتشغيل الشيفرة أعلاه، سترى أنه بعد طباعة كل حرف من الرسالة يستغرق بعض الوقت، مما يبدو وكأنه درامي.

نوم الخيط في Python

وظيفة وقت Python sleep() مهمة جدًا للتعددية. فيما يلي مثال بسيط يظهر أن وظيفة وقت نوم Python توقف تنفيذ الخيط الحالي فقط في البرمجة متعددة الخيوط.

import time
from threading import Thread


class Worker(Thread):
    def run(self):
        for x in range(0, 11):
            print(x)
            time.sleep(1)


class Waiter(Thread):
    def run(self):
        for x in range(100, 103):
            print(x)
            time.sleep(5)


print("Staring Worker Thread")
Worker().start()
print("Starting Waiter Thread")
Waiter().start()
print("Done")

الصورة أدناه توضح الناتج الذي تنتجه مثال النوم في خيط Python أعلاه. من الناتج يتضح بوضوح أن الخيوط فقط تتوقف عن التنفيذ وليس البرنامج بأكمله بواسطة وظيفة وقت نوم Python. هذا كل شيء عن وظيفة وقت نوم Python أو وظيفة نوم Python. المرجع: StackOverFlow Post, API Doc

Source:
https://www.digitalocean.com/community/tutorials/python-time-sleep