拉手网Python程序员面试题

版权声明:可以胡乱转载。 https://blog.csdn.net/hunyxv/article/details/75411639

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

dic={}
def num(aa,bb,cc):
    if aa%bb==0:
        return cc
    else:
        return aa
def 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 d

def 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 L

for x in fun(3,5,7):print(x)

猜你喜欢

转载自blog.csdn.net/hunyxv/article/details/75411639