摘要:裝飾器的使用使用一個裝飾器查看任意函數除遞歸函數運行時間分按時間順序輸出歌詞傳奇作詞劉兵作曲李健演唱王菲只是因為在人群中多看了你一眼再也沒能忘掉你容顏夢想著偶然能有一天再相見從此我開始孤單思念想你時你在天邊想你時你在眼前想你時你在
裝飾器的使用
使用一個裝飾器,查看任意函數(除遞歸函數)運行時間(20分)
import time # --exeTime def exeTime(func): def newFunc(*args, **kwargs): t0 = time.time() print("@%s, {%s} start" % (time.strftime("%X", time.localtime()), func.__name__)) back = func(*args, **kwargs) print("@%s, {%s} end" % (time.strftime("%X", time.localtime()), func.__name__)) print("@%.3fs taken for {%s}" % (time.time() - t0, func.__name__)) return back return newFunc # --end of exeTime @exeTime def foo(): for i in range(10000000): pass if __name__ == "__main__": foo()按時間順序輸出歌詞
musicLrc = """[00:03.50]傳奇
[00:19.10]作詞:劉兵 作曲:李健
[00:20.60]演唱:王菲
[00:26.60]
04:40.75[00:36.25]只是因為在人群中多看了你一眼
[04:49.00]
02:47.44再也沒能忘掉你容顏
02:54.83夢想著偶然能有一天再相見
03:02.32從此我開始孤單思念
03:08.15
03:09.35想你時你在天邊
03:16.90想你時你在眼前
03:24.42想你時你在腦海
03:31.85想你時你在心田
03:38.67
04:09.96[01:36.25]寧愿相信我們前世有約
04:16.37[01:42.47]今生的愛情故事 不會再改變
04:24.82[01:51.18]寧愿用這一生等你發現
04:31.38[01:57.43]我一直在你身旁 從未走遠
04:39.55[02:07.85]
"""
# 方法一 import time dict1 = {} list_key = [] music_list1 = musicLrc.splitlines() for i in music_list1: music_list2 = i.split("]") # ["[04:40.75", "[02:39.90", "[00:36.25", "只是因為在人群中多看了你一眼"] for j in range(len(music_list2)-1): list2 = music_list2[j][1:].split(":") # [1:] 是為了去掉[ 獲得完整時間 times = float(list2[0])*60 + float(list2[1]) dict1[times] = music_list2[-1] d = sorted(dict1.items(), key = lambda x:x[0]) # 返回一個 # print(d) start_time = time.clock() for key in d: tmp = round(key[0],2) tmp_min = tmp//60 tmp_sec = (tmp//1)%60 tmp_ms = (tmp*100//1)%100 while True: end_time = time.clock() if round(end_time,2) == tmp: print("[%02.0f:%02.0f.%02.0f%s]"%(tmp_min,tmp_sec,tmp_ms,key[1])) break # 方法二 import time #通過]來得知總共需要打印多少歌詞 counter = musicLrc.count("]") #分行切割 list1 = musicLrc.splitlines() # num是計算打了多少行數據了 num = 0 #標記位 time_self_flag = 0 #開始 start_time = time.clock() while True: end_time = time.clock() #獲取分鐘 end_time_min = end_time//60 #獲取秒鐘 end_time_sec = (end_time//1)%60 #獲取微妙 end_time_ms = (end_time*100//1)%100 #將時間按照 [時:分:秒 復制給變量time_self1 time_self1 = "[%02.0f:%02.0f.%02.0f" % (end_time_min, end_time_sec, end_time_ms) #這里進行判斷,是為了避免在同一時間對所有歌詞判斷多遍 if time_self1 != time_self_flag: time_self_flag = time_self1 # print(time_self1) for i in list1: list2 = i.split("]") for j in list2: #時間戳 與 歌詞時間進行對比,相同則打印,不同則推出 if j == time_self1: print(j+"]"+list2[-1]) num += 1 break #打印完所有歌詞,則退出while循環 if num == counter: break
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/41660.html
摘要:笨辦法學第版結構非常簡單,共包括個習題,其中個覆蓋了輸入輸出變量和函數三個主題,另外個覆蓋了一些比較高級的話題,如條件判斷循環類和對象代碼測試及項目的實現等。最后只想說,學習不會辜負任何人,笨辦法學 內容簡介 《笨辦法學Python(第3版)》是一本Python入門書籍,適合對計...
摘要:每個模塊都有對應的分支內容,并且分支內容都分為參考資料練習題交流討論三個內容,我最喜歡的是練習題,之前都是非正規軍的學習,沒有系統訓練過,現在有技能樹測評終于可以把之前散亂的知識點總結在一起了。祝大家都能在技能樹測評判斷自己在哪個級別的。 通過《Python技能樹測評》判斷自己在哪個級別: ...
摘要:按照下面的格式打印的數字以及每個數的平方幾何級數和階乘。分方法一設計一個函數,統計一個字符串中出現頻率最高的字符及其出現次數分。分筒條萬王寶強賈乃亮馬伊琍陳羽凡洗牌發牌第一個人多發一張牌的牌是筒條萬筒筒條條萬萬筒條萬 按照下面的格式打印1~10的數字以及每個數的平方、幾何級數和階乘。(5分) 數字 平方 幾何級數 階乘 1 1 2 1 2 4 4 2 3 9 8 6...
摘要:微積分微積分的課程我們也同樣是推薦和的課程。還有一個斯坦福大學的統計學習入門英文字幕相當不錯。所以,除了繪制數學圖形外,學習數學就應該完全與編程有機結合。 無論是三大數學軟件Matlab(通信、控制等工程例外)、Maple、Mathematica,還是三大統計軟件Spass、Stata、SAS,這些可視化的軟件本身就是編程的一個體現,它們在一定程度上降低了我們使用數學的門檻,但另一方面...
摘要:你想學習嗎你知道技能樹嗎技能樹是提供的系統化,面向實戰的學習環境。如果你是初學者請馬上開始學習,你最終可以獲得的技能認證。學習到任何一階段的同學們都可以輕松加入技能樹的學習,所以你要學習就請趕快加入吧。 python 是一種很流行的高級動態語言。編程語言的的排行可以參考TIOBE。當然如果從...
閱讀 3947·2021-10-19 13:23
閱讀 2326·2021-09-09 11:37
閱讀 2507·2019-08-29 15:20
閱讀 3407·2019-08-29 11:08
閱讀 1661·2019-08-26 18:27
閱讀 1764·2019-08-23 12:20
閱讀 3028·2019-08-23 11:54
閱讀 2544·2019-08-22 15:19