Python时间睡眠()

时间:2020-02-23 14:43:36  来源:igfitidea点击:

在本教程中,我们将学习python time sleep()方法。
Python sleep函数属于前面已经讨论过的python time模块

Python时间睡眠

Python时间睡眠功能用于增加程序执行的延迟。
我们可以使用python sleep函数在给定的时间(以秒为单位)中暂停程序的执行。
注意,python time sleep函数实际上仅停止当前线程的执行,而不是整个程序的执行。

Python time sleep()函数语法

Python sleep()是python时间模块的一种方法。
因此,首先我们必须导入时间模块,然后才能使用此方法。
使用python sleep()函数的方式是:

这里的sleep()方法t的参数以秒为单位。
这意味着,当执行语句time.sleep(t)时,下一行代码将在t秒后执行。
请参见以下示例:

# importing time module
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 time sleep函数示例。

import time
startTime = time.time()
for i in range(0,5):
 print(i)
 # making delay for 1 second
 time.sleep(1)
endTime = time.time()
elapsedTime = endTime - startTime
print("Elapsed Time = %s" % elapsedTime)

这将输出:

0
1
2
3
4
Elapsed Time = 5.059988975524902

经过的时间大于5,因为每次在for循环中,执行都会暂停1秒钟。
另外的时间是由于程序的执行时间,操作系统线程调度等。

python sleep()的不同延迟时间

有时您可能需要延迟不同的时间。
您可以按照以下步骤进行操作:

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()进行戏剧性打印

您可能需要以戏剧性的方式打印一些消息,可以按照以下步骤进行操作:

# importing time module
import time
message = "Hi!!! I am trying to create suspense"

for i in message:
 # printing each character of the message
 print(i)
 time.sleep(0.3)

如果您运行上述代码,则在打印邮件的每个字符后,您将看到它需要一些时间,这似乎很麻烦。

Python线程睡眠

Python time sleep()函数是用于多线程的非常重要的方法。
下面是一个简单的示例,显示python time sleep函数仅在多线程编程中才停止当前线程的执行。

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 time sleep函数,只有线程正在停止执行,而不是整个程序。