Я написал функцию bisect, которая принимает список слов «t» и слово «val». Он рекурсивно уменьшает список до тех пор, пока индекс списка не станет словом или не вернет false. Если он найдет слово, он должен вернуть его.Возвращаемое значение Python
Я прочитал несколько книг, документацию и все применимые вопросы здесь, но я все еще не могу определить, что я делаю неправильно: почему функция не вернет значение? Он напечатает значение просто отлично, но не будет возврата, кроме None.
Любая помощь очень ценится!
def bisect(t, val):
if t[len(t)/2] < val and len(t) > 1:
t = t[len(t)/2:]
bisect(t, val)
elif t[len(t)/2] > val and len(t) > 1:
t = t[:len(t)/2]
bisect(t, val)
elif t[len(t)/2] == val:
t = t[len(t)/2]
#print type(t), t
return t
else:
return False
b = make_list(t)
x = bisect(b, 'and')
print x
Вы уверены, что не хотите возвращать bisect (..) 'при выполнении рекурсивных вызовов? – ThiefMaster
Если я поставил оператор печати после 'if' и первого' elif', он правильно печатает (половину) список, пока не найдет значение. Правильно ли я понимаю ваш вопрос? – Sumtingwong