[英]Higher Order Function Python (never ending?)
我有一个代码,当它输入的值像“123”一样递增时,但当下一个字符小于前一个字符(例如“132”)时不起作用,并且如果有相同的数字,则递归永远不会停止(例如'122')
请指出我的代码中的问题,我们将不胜感激。
def sum(term, a, next, b):
if (a > b):
return 0
else:
print (term(a), a, next(a), b)
return term(a) + sum(term, next(a), next, b)
def knocked_down(game):
t1 = lambda x:int(game[x])
t2 = 0
t3 = lambda x: int(game[x])
t4 = len(game)-1
return sum(t1, t2, t3, t4)
results=knocked_down("123")
print('---')
print(results)
在sum
函数中,参数可能意味着
term
: 按索引获取值的函数a
: 起始索引next
: 获取下一个索引的函数b
: 最后一个索引OP 说:
sum()
函数不是我写的。 我的任务是使用它,我不允许更改代码。
所以我没有接触sum
函数。
您可以将t3
更改为lambda x: x + 1
。
def sum(term, a, next, b):
if (a > b):
return 0
else:
print(term(a), a, next(a), b)
return term(a) + sum(term, next(a), next, b)
def knocked_down(game):
t1 = lambda x: int(game[x])
t2 = 0
t3 = lambda x: x + 1
t4 = len(game) - 1
return sum(t1, t2, t3, t4)
results = knocked_down("132")
print('---')
print(results)
输出:
1 0 1 2
3 1 2 2
2 2 3 2
---
6
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.