v是变量,e是基于表达式的元组,具有可能的嵌套
输入的一个例子是:
print(isInside('x', (('m', '*', 'x'), '+', 'b')))
哪个应该返回True
但是使用我的代码,由于嵌套
,我得到了(True, False)
的输出
def isInside(v, e):
if len(e) == 0:
return False
elif e[0] == v:
return True
elif type(e[0]) == tuple:
return isInside(v, e[0]), isInside(v, e[1:])
else:
return isInside(v, e[1:])
答案 0 :(得分:4)
如果您不想要元组,为什么返回一个元组? 我认为你想要的是两者的逻辑 OR :
def isInside(v, e):
if len(e) == 0:
return False
elif e[0] == v:
return True
elif type(e[0]) == tuple:
return isInside(v, e[0]) or \
isInside(v, e[1:])
else:
return isInside(v, e[1:])
print(isInside('x', (('m', '*', 'x'), '+', 'b')))
这会返回一个简单的 True 。
答案 1 :(得分:1)
不是真的;问题出在这一部分:
selectedProducts.includes('Apples')
尝试将其替换为:
isInside(v, e[0]), isInside(v, e[1:])