Следующий код возвращает «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)
Я нашел решение, переместив return True в новый блок после цикла while:
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, это не может быть изменено позже в функции. Это правильно?