摘要:装饰器的使用使用一个装饰器查看任意函数除递归函数运行时间分按时间顺序输出歌词传奇作词刘兵作曲李健演唱王菲只是因为在人群中多看了你一眼再也没能忘掉你容颜梦想着偶然能有一天再相见从此我开始孤单思念想你时你在天边想你时你在眼前想你时你在
装饰器的使用
使用一个装饰器,查看任意函数(除递归函数)运行时间(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
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/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。当然如果从...
阅读 3930·2021-10-19 13:23
阅读 2308·2021-09-09 11:37
阅读 2477·2019-08-29 15:20
阅读 3375·2019-08-29 11:08
阅读 1646·2019-08-26 18:27
阅读 1743·2019-08-23 12:20
阅读 3005·2019-08-23 11:54
阅读 2524·2019-08-22 15:19