我需要检查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
顺便说一下,
if
和not
的那些括号是不必要的。关于python - Python-递归-编程新手,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27436170/