拉手网Python程序员面试题

来源:互联网 发布:itools.cn是什么软件 编辑:程序博客网 时间:2024/04/29 13:15

拉手网Python程序员面试题
拉手网Python程序员面试题,有用人用10行代码解决,有人用了一行代码解决是多么牛的赶脚。有种被秒杀的赶脚,题目在此https://www.jinshuju.net/f/EGQL3D

dic={}def num(aa,bb,cc):    if aa%bb==0:        return cc    else:        return aadef output(*ls):    d=''    if ls.count(ls[0])==len(ls):        return ls[0]    for i in ls:        if i in dic.values():            d=(d+i)    return ddef execute(a,b,c,number=101):    global dic    dic=dict(zip([a,b,c],['Fizzy','Whizzy','Duzzy']))    for i in range(1,number):        print output(num(i,a,dic[a]),num(i,b,dic[b]),num(i,c,dic[c]))if __name__=='__main__':    execute(3,57

上面网址已经找不到:
根据上面程序的意思(啊啊他写的逻辑好乱!!),我自己写了一个,虽然没有十行解决,但我觉得我写的比他思路要清晰多了…….

def fun(x,y,z):    dic = dict(zip([x,y,z],['Fizzy','Whizzy','Duzzy']))    L = []    list = [x for x in range(1,101) if x%3 == 0 or x%5 == 0 or x%7 == 0]    global dic    for i in range(1,101):        str = ''        if i in list:            if i % x == 0:                str += dic[x]            if i % y == 0:                str += dic[y]            if i % z == 0:                str += dic[z]            L.append(str)        else:            L.append(i)    return Lfor x in fun(3,5,7):print(x)
原创粉丝点击