1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.
  2. Anuncie Aqui
    Anuncie aqui você Também: fdantas@4each.com.br

[Python] Python Recursion Behavior

Discussão em 'Python' iniciado por Stack, Fevereiro 23, 2025.

  1. Stack

    Stack Membro Participativo

    I have studied recursion, especially in Python, and think I get it. I have learned this form:

    def f_Listsum(numList):
    if len(numList) == 1:
    return numList[0] ## Triggers the unwinding of the recursion stack
    else:
    return numList[0] + f_Listsum(numList[1:]) ## Winds up the recursion stack with a shorter and shorter slice of org. list.


    I get it. The recursive calls sort of "wind" things up, and then a stop or "trigger" causes the recursion to collapse into itself and consume the resulting values.

    However I ran into this today:

    def f_DecToBinary(v_Num):
    if v_Num > 1:
    f_DecToBinary(v_Num // 2)
    print(v_Num % 2,end = '')


    I wanted to substitute the function's "print" with a return of a string, or even a list of INTs, but I can't get it to work, as I don't understand how this recursion is operating. I see that it calls itself each time, and then initiates a collapse when v_Num == 1 or less, but it collapses to outside the "if" statement and then I get lost. When I try to assemble a STR or LIST from the collapse instead of just printing it, I errors or just the last digit returned.

    My questions are: How does f_DecToBinary work/function, and how can I capture the output into a string?

    Some examples:

    print(f_Listsum([1,3,5,7,9])) ## 25
    print()
    f_DecToBinary(15) ## 1111


    Thanks

    Continue reading...

Compartilhe esta Página