函数式编程的好处之一

那就是,调整代码很方便.

这个感慨来自于今天在知道上回答一个网友的问题:

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

 

转载于:https://www.cnblogs.com/xiangnan/p/3398882.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值