[Python] Why does my recursive function return None?

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

  1. Stack

    Stack Membro Participativo

    I have this function that calls itself:

    def get_input():
    my_var = input('Enter "a" or "b": ')

    if my_var != "a" and my_var != "b":
    print('You didn\'t type "a" or "b". Try again.')
    get_input()
    else:
    return my_var

    print('got input:', get_input())


    Now, if I input just "a" or "b", everything works fine:

    Type "a" or "b": a
    got input: a


    But, if I type something else and then "a" or "b", I get this:

    Type "a" or "b": purple
    You didn't type "a" or "b". Try again.
    Type "a" or "b": a
    got input: None


    I don't know why get_input() is returning None since it should only return my_var. Where is this None coming from and how do I fix my function?

    Continue reading...

Compartilhe esta Página