foundCounterexampleYet

foundCounterexampleYet

我需要检查numberList中的每个数字是否为正并执行以下操作
使用递归函数。我被卡住了。只是学习递归,由于对编程非常陌生,所以我完全迷路了。救命!

def isEveryNumberPositiveIn(numberList):
        foundCounterexampleYet = False

        for number in numberList:
            if(number <= 0):
                foundCounterexampleYet = True
                return not(foundCounterexampleYet)

最佳答案

尽管算法不是递归的,但是您的缩进是错误的,但是您的想法是正确的。但是,通过在检测到负数时跳出循环,可以提高效率:

def isEveryNumberPositiveIn(numberList):
    foundCounterexampleYet = False
    for number in numberList:
        if number <= 0:
            foundCounterexampleYet = True
            break
    return not foundCounterexampleYet


然后例如:

a = [1,-2,3,4,45]
print(isEveryNumberPositiveIn(a))


返回False

顺便说一下,ifnot的那些括号是不必要的。

关于python - Python-递归-编程新手,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27436170/

10-12 18:41