|
|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
老师之前让我们做了一个解析歌词的代码,输入秒数,自动获取对应的歌词,
代码如下:
a=float(input('请输入秒数:'))
musicLrc = """[00:03.50]传奇
[00:19.10]作词:刘兵 作曲:李健
[00:20.60]演唱:王菲
[00:26.60]
[04:40.75][02:39.90][00:36.25]只是因为在人群中多看了你一眼
[04:49.00]
[02:47.44][00:43.69]再也没能忘掉你容颜
[02:54.83][00:51.24]梦想着偶然能有一天再相见
[03:02.32][00:58.75]从此我开始孤单思念
[03:08.15][01:04.30]
[03:09.35][01:05.50]想你时你在天边
[03:16.90][01:13.13]想你时你在眼前
[03:24.42][01:20.92]想你时你在脑海
[03:31.85][01:28.44]想你时你在心田
[03:38.67][01:35.05]
[04:09.96][03:39.87][01:36.25]宁愿相信我们前世有约
[04:16.37][03:46.38][01:42.47]今生的爱情故事 不会再改变
[04:24.82][03:54.83][01:51.18]宁愿用这一生等你发现
[04:31.38][04:01.40][01:57.43]我一直在你身旁 从未走远
[04:39.55][04:09.00][02:07.85]
"""
dict1={}
lrclinelist=musicLrc.splitlines()
for eachline in lrclinelist:
lineList=eachline.split(']')
for n in range(len(lineList)-1):
timeStr1=lineList[n][1:]
timeStr2 =timeStr1.split(':')
f=float(timeStr2[0])*60+float(timeStr2[1])
dict1[f]=lineList[-1]
list5=list(dict1.keys())
list5.sort(reverse=True)
for i in range(len(list5)):
if a >= float(list5[i]):
print(dict1[list5[i]])
break
-------------------------------------
代码能正确运行,但是我想把整块代码放在一个函数里,然后直接调用函数,
但是就报错了,不知道为什么报错,代码如下,我把上面代码运行成功截图 下面代码报错截图都发一下
-------------------------------------------------------------------------
def aa():
a = float(input('请输入秒数:'))
musicLrc = """[00:03.50]传奇
[00:19.10]作词:刘兵 作曲:李健
[00:20.60]演唱:王菲
[00:26.60]
[04:40.75][02:39.90][00:36.25]只是因为在人群中多看了你一眼
[04:49.00]
[02:47.44][00:43.69]再也没能忘掉你容颜
[02:54.83][00:51.24]梦想着偶然能有一天再相见
[03:02.32][00:58.75]从此我开始孤单思念
[03:08.15][01:04.30]
[03:09.35][01:05.50]想你时你在天边
[03:16.90][01:13.13]想你时你在眼前
[03:24.42][01:20.92]想你时你在脑海
[03:31.85][01:28.44]想你时你在心田
[03:38.67][01:35.05]
[04:09.96][03:39.87][01:36.25]宁愿相信我们前世有约
[04:16.37][03:46.38][01:42.47]今生的爱情故事 不会再改变
[04:24.82][03:54.83][01:51.18]宁愿用这一生等你发现
[04:31.38][04:01.40][01:57.43]我一直在你身旁 从未走远
[04:39.55][04:09.00][02:07.85]
"""
dict1 = {}
lrclinelist = musicLrc.splitlines()
for eachline in lrclinelist:
lineList = eachline.split(']')
for n in range(len(lineList) - 1):
timeStr1 = lineList[n][1:]
timeStr2 = timeStr1.split(':')
f = float(timeStr2[0]) * 60 + float(timeStr2[1])
dict1[f] = lineList[-1]
list5 = list(dict1.keys())
list5.sort(reverse=True)
for i in range(len(list5)):
if a >= float(list5[i]):
print(dict1[list5[i]])
break
aa()
你确定你的代码没问题??
- def fmusicLrc(time, musicLrc):
- dict1={}
- lrclinelist=musicLrc.splitlines()
- for eachline in lrclinelist:
- lineList=eachline.split(']')
-
- for n in range(len(lineList)-1):
- timeStr1=lineList[n][1:]
-
- timeStr2 =timeStr1.split(':')
-
- f=float(timeStr2[0])*60+float(timeStr2[1])
-
- dict1[f]=lineList[-1]
-
- list5=list(dict1.keys())
- list5.sort(reverse=True)
- for i in list5:
- if time >= float(i):
- return dict1.get(float(i),"没找到")
- break
- a=float(input('请输入秒数:'))
- musicLrc = """[00:03.50]传奇
- [00:19.10]作词:刘兵 作曲:李健
- [00:20.60]演唱:王菲
- [00:26.60]
- [04:40.75][02:39.90][00:36.25]只是因为在人群中多看了你一眼
- [04:49.00]
- [02:47.44][00:43.69]再也没能忘掉你容颜
- [02:54.83][00:51.24]梦想着偶然能有一天再相见
- [03:02.32][00:58.75]从此我开始孤单思念
- [03:08.15][01:04.30]
- [03:09.35][01:05.50]想你时你在天边
- [03:16.90][01:13.13]想你时你在眼前
- [03:24.42][01:20.92]想你时你在脑海
- [03:31.85][01:28.44]想你时你在心田
- [03:38.67][01:35.05]
- [04:09.96][03:39.87][01:36.25]宁愿相信我们前世有约
- [04:16.37][03:46.38][01:42.47]今生的爱情故事 不会再改变
- [04:24.82][03:54.83][01:51.18]宁愿用这一生等你发现
- [04:31.38][04:01.40][01:57.43]我一直在你身旁 从未走远
- [04:39.55][04:09.00][02:07.85]
- """
- print(fmusicLrc(a, musicLrc))
复制代码
|
|