版权声明:可以胡乱转载。 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,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)