1. 程式人生 > >拉手網Python程式設計師面試題

拉手網Python程式設計師面試題

拉手網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)