课堂小练:时间下一秒和歌词解析(python)

本文介绍了一种通过输入时间来获取下一秒时间的方法,并实现了一个简单的歌词同步功能,可根据用户输入的时间显示对应的歌词内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

输入一个时间,输出一秒后的时间:

timeStr = input()
#12:34:59

timeList = timeStr.split(":")
h = int(timeList[0])
m = int(timeList[1])
s = int(timeList[2])

s += 1
if s == 60:
    m += 1
    s = 0
    if m == 60:
        h += 1
        m = 0
        if h == 24:
            h == 0
print("%.2d:%.2d:%.2d"%(h,m,s))
输出为:12:35:00

获取具体时间的歌词:

musicLrc = """[00:00.84]第三十八年夏至
[00:03.01]衰草连横向晚晴 半城柳色半声笛
[00:17.94]枉将绿蜡作红玉 满座衣冠无相忆
[00:33.21]时光 来复去
[00:38.16]斜屏半倚 拉长了光影
[00:41.86]重彩朱漆 斑驳了画意
[00:45.13]一出纸醉金迷闹剧
[00:47.15]一袭染尽红尘的衣
[00:49.52]唱罢西厢谁盼得此生相许
[02:25.04][00:53.35]灯下的影 粉饰着回忆
"""
lrcDict = {}

musicLrcList = musicLrc.splitlines()

for lrcLine in musicLrcList:
    lrcLineList = lrcLine.split("]")
    for index in range(len(lrcLineList) - 1):
        timeStr = lrcLineList[index][1:]
        timeList = timeStr.split(":")
        time1 = float(timeList[0])*60 + float(timeList[1])

        lrcDict[time1] = lrcLineList[-1]

#print(lrcDict)

allTimeList = []
for t in lrcDict:
    allTimeList.append(t)
allTimeList.sort()

while 1:
    getTime = float(input("请输入一个时间"))

    for n in range(len(allTimeList)):
        tempTime = allTimeList[n]
        if getTime < tempTime:
            break

    if n == 0:
        print("时间太少")
    else:
        print(lrcDict[allTimeList[n - 1]])

歌词解析:

import time
musicLrc = """[00:00.84]第三十八年夏至
[00:03.01]衰草连横向晚晴 半城柳色半声笛
[00:17.94]枉将绿蜡作红玉 满座衣冠无相忆
[00:33.21]时光 来复去
[00:38.16]斜屏半倚 拉长了光影
[00:41.86]重彩朱漆 斑驳了画意
[00:45.13]一出纸醉金迷闹剧
[00:47.15]一袭染尽红尘的衣
[00:49.52]唱罢西厢谁盼得此生相许
[02:25.04][00:53.35]灯下的影 粉饰着回忆
"""
lrcDict = {}

musicLrcList = musicLrc.splitlines()

for lrcLine in musicLrcList:
    lrcLineList = lrcLine.split("]")
    for index in range(len(lrcLineList) - 1):
        timeStr = lrcLineList[index][1:]
        timeList = timeStr.split(":")
        time1 = float(timeList[0])*60 + float(timeList[1])

        lrcDict[time1] = lrcLineList[-1]

allTimeList = []
for t in lrcDict:
    allTimeList.append(t)
allTimeList.sort()

getTime = 0
while 1:
    for n in range(len(allTimeList)):
        tempTime = allTimeList[n]
        if getTime < tempTime:
            break
    lrc = lrcDict.get(allTimeList[n - 1])
    if lrc == None:
        pass
    else:
        print(lrc)
    time.sleep(1)
    getTime += 1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值