El código recursivo devuelve Ninguno [duplicado]

Resuelto HeinzKurt asked hace 10 años • 1 respuestas

Realmente no entiendo por qué el código.

def isIn(char, aStr): 
    ms = len(aStr)/2
    if aStr[ms] == char:
        print 'i am here now'
        return True
    elif char>aStr[ms] and not ms == len(aStr)-1:
        aStr = aStr[ms+1:]
    elif char <aStr[ms] and not ms == 0:
        aStr = aStr[0:ms]
    else:
        return False
    isIn(char, aStr)

print isIn('a', 'ab')

sigue regresando Ninguno. imprime 'estoy aquí ahora', pero no devuelve Verdadero, tal como dice la siguiente línea. ¿Por qué?

HeinzKurt avatar Mar 11 '14 04:03 HeinzKurt
Aceptado

Probablemente quieras un returnen la última línea:

return isIn(char, aStr)

Sin él, la función simplemente regresa Nonecuando termina sin ver un archivo return.

arshajii avatar Mar 10 '2014 21:03 arshajii