以下代码返回“ True”。
check = [1,2,4,6]
def is_consecutive(a_list):
"""Checks to see if the numbers in a list are consecutive"""
total = 2
while total > 1:
test = a_list.pop(0)
if test == a_list[0] - 1:
total = len(a_list)
return True
else:
return False
break
works = is_consecutive(check)
print(works)
我找到了一个解决方案,方法是在while循环之后,将Return True移至新块:
check = [1,2,4,6]
def is_consecutive(a_list):
"""Checks to see if the numbers in a list are consecutive"""
total = 2
while total > 1:
test = a_list.pop(0)
if test == a_list[0] - 1:
total = len(a_list)
else:
return False
break
return True
works = is_consecutive(check2)
print(works)
我不完全理解为什么将这段代码移到while循环之外可以正常工作。在我看来,一旦您告诉函数返回True,就无法在以后的函数中更改它。正确吗?
答案 0 :(得分:0)
是的,当您执行return True
时,就是从那时起“退出”该函数,即该函数中的其他任何命令都不会执行。通过将return True
移到while
循环外并移至函数末尾,可以确保如果列表是连续的,则该函数从不返回False
,因此必须返回{{1} }。
答案 1 :(得分:0)
这是因为在新代码中,您试图找到一个条件,使列表中的数字不连续。如果您发现任何数字,那么您会立即返回false。
,一旦遍历该列表,但没有找到连续的数字,则将其视为具有连续数字的列表,因此返回True
答案 2 :(得分:0)
Return语句停止执行该特定功能。是的,您可以使用多个return语句,但只能在条件块中使用。因为在调用return语句时,它将停止执行该函数,因此它将无法在return语句后继续执行行/块。