python時間語句
A. python某段代碼執行時間過長,如何跳過執行下一步
urllib2.urlopen 函數有設置超時的參數timeout, 可以設置超時
urllib2.urlopen("http://www..com", timeout=5)
五秒內, 沒有相應, 就繼續向下執行了
B. python 列印出函數執行所用時間
使用timeit模塊,先介紹下:
timeit 模塊
timeit模塊定義了接受兩個參數的Timer類。兩個參數都是字元串。 第一個參數是你要計時的語句或者函數。 傳遞給Timer的第二個參數是為第一個參數語句構建環境的導入語句。 從內部講,timeit構建起一個獨立的虛擬環境, 手工地執行建立語句,然後手工地編譯和執行被計時語句。
一旦有了Timer對象,最簡單的事就是調用timeit(),它接受一個參數為每個測試中調用被計時語句的次數,默認為一百萬次;返回所耗費的秒數。
Timer對象的另一個主要方法是repeat(), 它接受兩個可選參數。 第一個參數是重復整個測試的次數,第二個參數是每個測試中調用被計時語句的次數。 兩個參數都是可選的,它們的默認值分別是3和1000000。repeat()方法返回以秒記錄的每個測試循環的耗時列表。Python有一個方便的min函數可以把輸入的列表返回成最小值,如: min(t.repeat(3, 1000000))
你可以在命令行使用timeit模塊來測試一個已存在的Python程序,而不需要修改代碼。
再給你個例子,你就知道怎麼做了。
#-*-coding:utf-8-*-
#!/bin/envpython
deftest1():
n=0
foriinrange(101):
n+=i
returnn
deftest2():
returnsum(range(101))
deftest3():
returnsum(xforxinrange(101))
if__name__=='__main__':
fromtimeitimportTimer
t1=Timer("test1()","from__main__importtest1")
t2=Timer("test2()","from__main__importtest2")
t3=Timer("test3()","from__main__importtest3")
printt1.timeit(1000000)
printt2.timeit(1000000)
printt3.timeit(1000000)
printt1.repeat(3,1000000)
printt2.repeat(3,1000000)
printt3.repeat(3,1000000)
C. python 時間復雜度
Hey de! 判斷時間復雜度跟核心語句的執行頻次有密切關系,執行頻次越多時間復雜度越高。第三個循環的核心語句是:
x = x*2
假設我們設它的執行頻次為f(n),根據題意我們能夠得到這種規律,執行1次x=2,2次x=4,所以該核心語句的執行次數f(n)應該滿足: 2^{f(n)} < n, 得出f(n)< log_{2}(n),更多關於時間復雜度的知識可參考這篇博文:
http://blog.csdn.net/zolalad/article/details/11848739?readlog
D. python用for語句列印10月份自然日期
import calendar
cal = calendar.month(2017, 10)
print ("以森早下輸出2017年10月份的日歷:")
print (cal)
輸出如下:
以下此畝雀耐瞎輸出2017年10月份的日歷:
October 2017
Mo Tu We Th Fr Sa Su
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
***Repl Closed***
E. python時間戳問題
dt不能是字元串 要用datetime格式的就對了
timetuple() 是時間偏移量 這里的hours=8 就是增加8小時
*1000000000 時間是浮點數 這個就是為了把這個數換算成整數用的