函数式编程的好处之一
那就是,调整代码很方便.
这个感慨来自于今天在知道上回答一个网友的问题:
http://zhidao.baidu.com/question/2201936720543592228.html?sort=6&old=1#here
其他人的答案都是命令式.结果提问者针对他们的回答,一会说我是py3.0,str出错,一会又说最后结果要有Done!字符.
虽然这是提问者自己不善于提问,但是我可以根据需求的变化,修改一两个字符就OK.
然而命令式就没这么简单了...到处都需要修改.
这是我的答案:
def show(a,b): reverse= True if a>b else False res=[] def recur(a,b): if abs(a-b)==1: res.extend([a,b,b]) return res res.extend([a,b]) if a==b: return res else: return recur(a-1,b+1) if reverse else recur(a+1,b-1) return '%s Done!' % ' '.join(map(unicode,recur(a,b))) while 1: num1 = input("please input num1: \n") num2 = input("please input num2: \n") print "Num1:%s\nNum2:%s\n%s\n"%(num1,num2,show(num1,num2)) if raw_input("continue?(y/n)?").lower()=='n': break