#python
#python
Вопрос:
Программа должна выглядеть следующим образом: выяснить, подключены ли два пользователя (прямо или косвенно), и указать путь, по которому подключены два пользователя, используя рекурсию. Проблема возникает в строке return True , поскольку рекурсия не прерывается, а просто продолжается, как если бы оператор if не был true .
def trace(info, first, second):
for a, b in info:
if a == first:
print(a, b)
if b == second:
return True
else:
trace(info, b, second)
return False
info = [('zayn', 'anna'), ('jake', 'maria'), ('pete', 'anna'), ('travis', 'hannah'), ('maria', 'sara'), ('anna', 'mark'), ('sara', 'zayn'), ('sara', 'pete'), ('sara', 'mark')]
trace(info, 'jake', 'mark')
Комментарии:
1. Я думаю, вы пропустили строку кода
2. Вам не хватает оператора return из рекурсивного вызова
else: return trance(info, b, second)
Ответ №1:
Вам не хватает return
инструкции из рекурсивного вызова:
def trace(info, first, second):
for a, b in info:
if a == first:
print(a, b)
if b == second:
return True
else:
return trace(info, b, second)
return False