Почему эта рекурсия на Python не работает?

Подразумевалось, что она должна переводить десятичное число в двоичную систему счисления. И я знаю, что можно без рекурсии это сделать. Просто не могу понять, почему этот код не работает.

s=""
def Lo(a,s):
    if a>0:
        s=str(a%2)+s
        Lo(a//2,s)
    else:
        return s
a=int(input())
print(Lo(a,s))

Ответы (2 шт):

Автор решения: Ret7020

Тут всё просто, вы некорректно написали вызов самой функции внутри, вы её должны не просто вызывать, но и ретёрнить. Т.е. нужно пофиксить только одну строку. И ещё, пишите с применением стандарта форматирование pep8.

s = ""
def Lo(a, s):
    if a > 0:
        s = str(a % 2) + s
        return Lo(a // 2, s)
    else:
        return s


a = int(input())
print(Lo(a, s))
→ Ссылка
Автор решения: SergFSM

то же самое вы можете записать немного компактнее:

def d_to_b(n):
    return str(n) if n<2 else d_to_b(n//2) + str(n%2)
→ Ссылка