拉手網Python程式設計師面試題
阿新 • • 發佈:2018-11-14
拉手網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,5,7)
上面網址已經找不到:
根據上面程式的意思(啊啊他寫的邏輯好亂!!),我自己寫了一個,雖然沒有十行解決,但我覺得我寫的比他思路要清晰多了…….
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)