定义函数中嵌套定义函数,使用递归

# 本程序用来验证error值是否合适
#value=[6,10,52,99,199,520,999,1314,1999,3000,6666,8888,9999,13140,20520]
#erro 代表误差


Value=[6,10,52,99,199,520,999,1314,1999,3000,6666,8888,9999,13140,20520,52000]
erro=2000
Value.sort(reverse = True)
def five_sum(List,Target):
    i_list=[]
    t=Target
    def f_sum(List,Target):
        while len(i_list)<=5:
            for i in List:
                if Target-i>=0:
                    #print(i)
                    i_list.append(i)
                    Target=Target-i
                    #print(i_list)
                    return f_sum(List,Target)
                    pass
                else:
                    pass
                pass
            return i_list
        return i_list[0:5]
    
    return f_sum(List,Target)

#print(five_sum(Value,6000))

# 下方为检验数据区间在range内填入即可

for Tartg in range(6000,12000):
    if Tartg-sum(five_sum(Value,Tartg))>erro or Tartg-sum(five_sum(Value,Tartg))<-erro :
        print(Tartg,"warring")
        pass
    else:
        print(Tartg)
        pass

需求

给定的奖励数额target,需要从value的list中凑齐,要求最多五个,同时有一个Error值,验证取出的是否合理。

现在验证这个Error值是否合理。

 

 如果return值出现在部分条件中,则需要注意所有的条件都应该有return值

 

posted @ 2020-11-13 18:42  余者皆可  阅读(243)  评论(0编辑  收藏  举报