import time
成都創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價比平江網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式平江網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋平江地區(qū)。費用合理售后完善,十余年實體公司更值得信賴。
def start_sleep():
time.sleep(3)
if __name__ == '__main__':
#The start time
start = time.clock()
#A program which will run for 3 seconds
start_sleep()
#The End time
end = time.clock()
print("The function run time is : %.03f seconds" %(end-start))
# End
回答會自動過濾縮進,需要按照上圖調(diào)整語法縮進,下方是代碼
import time
# 設(shè)置倒計時時間(單位:秒)
countdown_time = 20
# 開始循環(huán)
while countdown_time 0:
# 打印當(dāng)前倒計時時間
print(countdown_time)
# 等待 1 秒
time.sleep(1)
# 倒計時時間減 1
countdown_time -= 1
# 倒計時結(jié)束
print("倒計時結(jié)束!")
用python實現(xiàn)計時器功能,代碼如下:
''' Simple Timing Function.
This function prints out a message with the elapsed time from the
previous call. It works with most Python 2.x platforms. The function
uses a simple trick to store a persistent variable (clock) without
using a global variable.
'''
import time
def dur( op=None, clock=[time.time()] ):
if op != None:
duration = time.time() - clock[0]
print '%s finished. Duration %.6f seconds.' % (op, duration)
clock[0] = time.time()
# Example
if __name__ == '__main__':
import array
dur() # Initialise the timing clock
opt1 = array.array('H')
for i in range(1000):
for n in range(1000):
opt1.append(n)
dur('Array from append')
opt2 = array.array('H')
seq = range(1000)
for i in range(1000):
opt2.extend(seq)
dur('Array from list extend')
opt3 = array.array('H')
seq = array.array('H', range(1000))
for i in range(1000):
opt3.extend(seq)
dur('Array from array extend')
# Output:
# Array from append finished. Duration 0.175320 seconds.
# Array from list extend finished. Duration 0.068974 seconds.
# Array from array extend finished. Duration 0.001394 seconds.
我想在Python中創(chuàng)建一個倒計時,我想用非常簡單的方法來創(chuàng)建。我看了幾個視頻,但沒有找到合適的解決方案。
這是我現(xiàn)在正在使用的代碼。
import time
def countdown(t):
while t:
mins, secs = divmod(t, 60)
timer = '{:02d}:{:02d}'.format(mins, secs)
print(timer, end="\r")
time.sleep(1)
t -= 1
print('Time Over!!!!')
t = input("Enter the time in seconds: ")
countdown(int(t))
解決方案1
問題是,當(dāng)你睡眠1秒的時候,并不是精確的1秒,理論上說,在足夠長的時間內(nèi),錯誤可能會傳播,以至于你可能會打印出一個錯誤的時間。為了糾正這一點,你的代碼需要在它的循環(huán)中實際檢查從程序開始運行以來實際經(jīng)過了多少時間,并使用它來計算t的新值是多少,而且它應(yīng)該經(jīng)常這樣做,以便倒計時順利進行。比如說。
import time
def countdown(t):
start_time = time.time()
start_t = t
# compute accurate new t value aprroximately every .05 seconds:
while t 0:
mins, secs = divmod(t, 60)
timer = '{:02d}:{:02d}'.format(mins, secs)
print(timer, end="\r")
time.sleep(.05) # finer timing
now = time.time()
elapsed_time = int(now - start_time) # truncated to seconds
t = start_t - elapsed_time
print('Time Over!!!!')
t = input("Enter the time in seconds: ")
countdown(int(t))
參考: How to make a countdown
timeit
通常在一段程序的前后都用上time.time(),然后進行相減就可以得到一段程序的運行時間,不過python提供了更強大的計時庫:timeit
#導(dǎo)入timeit.timeitfrom timeit import timeit ?
#看執(zhí)行1000000次x=1的時間:timeit('x=1')#看x=1的執(zhí)行時間,執(zhí)行1次(number可以省略,默認(rèn)值為1000000):timeit('x=1', number=1)#看一個列表生成器的執(zhí)行時間,執(zhí)行1次:timeit('[i for i in range(10000)]', number=1)#看一個列表生成器的執(zhí)行時間,執(zhí)行10000次:timeit('[i for i in range(100) if i%2==0]', number=10000)
測試一個函數(shù)的執(zhí)行時間:
from timeit import timeitdef func():
s = 0
for i in range(1000):
?s += i ? ?print(s)# timeit(函數(shù)名_字符串,運行環(huán)境_字符串,number=運行次數(shù))t = timeit('func()', 'from __main__ import func', number=1000)print(t)
此程序測試函數(shù)運行1000次的執(zhí)行時間
repeat:
由于電腦永遠(yuǎn)都有其他程序也在占用著資源,你的程序不可能最高效的執(zhí)行。所以一般都會進行多次試驗,取最少的執(zhí)行時間為真正的執(zhí)行時間。
from timeit import repeatdef func():
s = 0
for i in range(1000):
?s += i#repeat和timeit用法相似,多了一個repeat參數(shù),表示重復(fù)測試的次數(shù)(可以不寫,默認(rèn)值為3.),返回值為一個時間的列表。t = repeat('func()', 'from __main__ import func', number=100, repeat=5)print(t)
print(min(t))
定義在默認(rèn)的計時器中,針對不同平臺采用不同方式。在Windows上,time.clock()具有微秒精度,但是time.time()精度是1/60s。在Unix上,time.clock()有1/100s精度,而且time.time()精度遠(yuǎn)遠(yuǎn)更高。在另外的平臺上,default_timer()測量的是墻上時鐘時間,不是CPU時間。這意味著同一計算機的其他進程可能影響計時
版權(quán)聲明:
def clock(func):
def clocked(*args, **kwargs):
t0 = timeit.default_timer()
result = func(*args, **kwargs)
elapsed = timeit.default_timer()?- t0
name = func.__name__
arg_str = ', '.join(repr(arg) for arg in args)
print('[%0.8fs] %s(%s) - %r' % (elapsed, name, arg_str, result))
return result
return clocked
@clock
def run(seconds):
time.sleep(seconds)
return time
if __name__ == '__main__':
run(1)
本文為CSDN博主「FlyingPie」的原創(chuàng)文章,遵循CC 4.0 BY-SA版權(quán)協(xié)議,附上原文出處鏈接及聲明。
原文鏈接:
參考資料:CSDN。