Python中的sleep函數(shù)可以傳小數(shù)進(jìn)去,就可以進(jìn)行毫秒級(jí)的延時(shí)了,代碼如下:
成都創(chuàng)新互聯(lián)主營(yíng)新河網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營(yíng)網(wǎng)站建設(shè)方案,成都App制作,新河h5重慶小程序開發(fā)公司搭建,新河網(wǎng)站營(yíng)銷推廣歡迎新河等地區(qū)企業(yè)咨詢
# 例1:循環(huán)輸出休眠1秒
import time
i = 1
while i = 3:
print i # 輸出i
i += 1
time.sleep(1) # 休眠1秒
# 例2:循環(huán)輸出休眠100毫秒
import time
i = 1
while i = 3:
print i # 輸出i
i += 1
time.sleep(0.1) # 休眠0.1秒
time.sleep() 函數(shù)命名來(lái)源于英文單詞time(時(shí)間)和sleep(睡眠)。
time 是python帶的非內(nèi)置庫(kù),使用時(shí)需要import,主要用于處理和時(shí)間相關(guān)的操作。
time.sleep用于給定時(shí)間內(nèi)掛起(等待)當(dāng)前線程的執(zhí)行。
time.sleep() 函數(shù)的例子:
可以注釋掉time.sleep(2)再運(yùn)行一次對(duì)比一下
可以看到雖然都是打印出一樣的結(jié)果,但time.sleep()加入了等待時(shí)間
這里還要解釋一下python中線程與進(jìn)程的區(qū)別。
舉個(gè)例子,廚房做菜看成是一個(gè)進(jìn)程,那么這個(gè)進(jìn)程下面就可能有多個(gè)人或一個(gè)人(cpu基本執(zhí)行單元,即線程)來(lái)執(zhí)行,多個(gè)人可以分別洗菜,刷碗,擺盤等等同時(shí)作業(yè),他們又是共享這個(gè)廚房的資源的。每個(gè)人存在一定的資源競(jìng)爭(zhēng)關(guān)系,比如爐火只有1個(gè)。
這里time.sleep是針對(duì)線程執(zhí)行的,也就是其中一個(gè)人去sleep睡覺了,不影響其他人的繼續(xù)工作。
參數(shù)
該函數(shù)沒有返回值。
結(jié)果類似如下:
可以看到秒數(shù)相差了5
無(wú)
time.sleep()常用于推遲執(zhí)行的場(chǎng)景
在python中,與時(shí)間相關(guān)的模塊有:time,datetime以及calendar
對(duì)基礎(chǔ)運(yùn)行環(huán)境有疑問的,推薦參考: python函數(shù)深入淺出 0.基礎(chǔ)篇
轉(zhuǎn)換time.time()函數(shù)返回的時(shí)間浮點(diǎn)數(shù),來(lái)獲取當(dāng)前毫秒時(shí)間。
先importtime模塊。getMS函數(shù)的返回值,就是一個(gè)長(zhǎng)度為3的毫秒時(shí)間字符串,getTime函數(shù)將這個(gè)毫秒時(shí)間與小時(shí)分鐘秒合并成一個(gè)用冒號(hào)(:)分割的時(shí)間字符串。
秒,毫秒,微秒相互之間都是10^3的關(guān)系,以上代碼將時(shí)間轉(zhuǎn)換成微秒代碼,然后用1000去取余,就得到了當(dāng)前時(shí)間的微秒值。這段代碼得到的是int,請(qǐng)按自己需要轉(zhuǎn)換成string。
用定時(shí)器做,1秒鐘喚醒一次響應(yīng)函數(shù),不要用延時(shí)函數(shù) sleep
# 定義時(shí)間顯示
self.timer = QtCore.QTimer(self)
self.timer.timeout.connect(self.act_displayTM) #綁定響應(yīng)函數(shù)
self.timer.setInterval(1000) #設(shè)置時(shí)間間隔
self.timer.start()
# 定時(shí)響應(yīng)事件對(duì)應(yīng)邏輯
def act_displayTM(self):
s_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
self.ui.label_Date.setText(s_time)
return