02-python练习:打印歌词(字符串操作练习),播放器播放歌词方式(到时间出现对应歌词)

方法1:
musicLrc = r"""[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]
"""
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
 方法2:
 
import time

dict1 = {}
list_key = []
#1.提取出时间和歌词
music_list1 = musicLrc.splitlines()
for i in music_list1:
    music_list2 = i.split("]")
    # print(music_list2)
    for j in range(len(music_list2)-1):
        # print(music_list2[j][1:])
        list2 = music_list2[j][1:].split(":")
        # 2.将字符串时间转换成整型数据
        times = float(list2[0])*60+float(list2[1])
        # print(times)
        # 3.转换成字典
        dict1[times] = music_list2[-1]
# print(dict1)
#4.将字典中的key(就是时间),提取出来,存放在list,并进行排序
for key in dict1.keys():
    list_key.append(key)
#排序
list_key.sort()
#按时间顺序打印出歌词
# for key in list_key:
#     print(key,dict1[key])

#播放器方式打印歌词
start_time = time.clock()
flag_music = 0
for key in list_key:
    #取整数
    keys = key//1
    while True:
        # 取整数
        end_time = time.clock()//1
        if end_time == keys:
            print(key,dict1[key])
            break
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值