#recursion #while-loop #python-3.8
#рекурсия #цикл while #python-3.8
Вопрос:
Когда я запускаю эту функцию, она выводится непрерывно.
def func(l):
print(f' at begining not isnull{not isnull(l)}')
while not isnull(l):
print(f'in while loop isnull return is {isnull(l)}')
islat(l[1:])
return "At return."
Вывод, который просто выполняется до тех пор, пока я не нажму ctl-c.
>>> func(["this"])
At function begining: Not isnull(l) returns True
in while loop: Not isnull(l) returns True
At function begining: Not isnull(l) returns False
in while loop: Not isnull(l) returns True
At function begining: Not isnull(l) returns False
in while loop: Not isnull(l) returns True
At function begining: Not isnull(l) returns False
in while loop: Not isnull(l) returns True
At function begining: Not isnull(l) returns False
Я не понимаю, почему вводится цикл while, когда not isnull является True или False?
Комментарии:
1. какова ваша функция isnull
2. isnull проверяет, является ли список instance и пуст ли он.
3. что такое функция islat
4. Я думаю, что ваша ошибка заключается в ваших определенных методах, таких как islat и isnull. покажите эти методы, чтобы узнать, что вы там делаете
Ответ №1:
цикл while будет выполняться, пока данное выражение имеет значение True. В вашем случае данное выражение равно not isnull
. Поскольку isnull
False not isnull
равно True, следовательно, цикл выполняется до isnull
тех пор, пока не станет True
Комментарии:
1. Меня смущает, что при первом запуске он вводит цикл while со значением True, а затем вводит цикл while, когда значение равно False, для следующих случаев?