qfxx第二周2作业

# 1.设计一个函数,判断用户传入的对象(字符串、列表、元组)长度是否大于5
def length(ob):
    if len(ob)<5:
        print("传入的",type(ob),"对象长度不大于5")
    else:
        print("传入的",type(ob),"对象长度大于5")
length(["sdsd",334,44,[3,34,5,6]])    #同时也说明len()函数只能统计第一层的数目

# 2.设计一个函数,检查用户传入的对象(字符串、列表、元组)的每一个元素是否含有空内容【字符串中含有空格,列表与元组中函数有空串】。
#
# 若含有则返回True,否则返回False
#
# ”hello world“ [12,34,"",23]

def ifNull(dd):
    for a in dd:
        if type(dd)==str:
            if a==" ":
                return True
            else:
                print(a)
                continue
        elif type(dd)==list:
            if type(a)!=list:
                if a=="":
                    return True
                else:continue
            else:
                print(a)
                ifNull(a)
                continue
        elif type(dd)==tuple:
            if type(a)!=tuple:
                if a=="":
                    return True
                else:continue
            else:
                print(a)
                ifNull(a)
                continue
    return False
print(ifNull((1,23,"")))


# 3.设计一个函数,从控制台输入一个整数,计算整数绝对值的阶乘,n!=1 x 2 x … x n【写成函数】

def Factorial(nun):
    if nun<0:
        nun=-nun
    sun=1
    for i in range(1,nun+1):
        sun*=i
    return sun
print(Factorial(int(input("请输入一个整数"))))


# 4.从控制台输入两个正数,求这两个正数的最大公约数,与最小公倍数
#
# 注意:最大公约数的公式:
#
# m % n = r ,m = n  n = r  ,r == 0  输出m ,若不为0则继续循环
#
# 最小公倍数的公式:
#
# 最小公倍数 = 两个正数的乘积/最大公约数

a=int(input("请输入一个正数"))
b=int(input("请输入另一个正数"))

def maxyue(m,n):
    r = 1
    while r!=0:
        r=0
        r=m%n
        m=n
        n=r
    return m

def minbei(m,n):
    return m*n/maxyue(m,n)
print(maxyue(a,b))
print(minbei(a,b))

# 1.歌词解析器

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]
'''
import  time
list1={}
timeorder=[]
def song(music):
    songList=music.splitlines()
    for songLine in songList:
        if songLine:
            songLineLine=songLine.split("]")
            for end in songLineLine:
                endLine=end.split("[")
                for endLineLine in endLine:
                    #此时这里还是一行歌词
                    if endLineLine:
                        if 48<=ord(endLineLine[0])<=57:
                            list1[int(endLineLine[1:2])*60+float(endLineLine[-5:-1])]=songLineLine[-1]
                            timeorder.append(int(endLineLine[1:2])*60+float(endLineLine[-5:-1]))
    timeorder.append(0)
    timeorder.sort()
def start():
    a=1
    for song1 in timeorder:
        if song1 in list1:
            if list1[song1]:
                if a<=len(timeorder):
                    time.sleep(timeorder[a]-song1)
                    print(list1[song1])
                else:
                    print(list1[song1])
            else:
                if a<=len(timeorder):
                    time.sleep(timeorder[a]-song1)
        a+=1

song(musicLrc)
# print(timeorder)
# print(list1)
# print(timeorder)
start()

还是挺简单的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值