Les variables globales de la récursivité. Python

OK, je suis en utilisant Python 2.7.3 et voici mon code:

def lenRecur(s): 

    count = 0

    def isChar(c):
        c = c.lower()
        ans=''
        for s in c:
            if s in 'abcdefghijklmnopqrstuvwxyz':
                ans += s
        return ans

    def leng(s):
        global count
        if len(s)==0:
            return count
        else:
            count += 1
            return leng(s[1:])

    return leng(isChar(s))

Je suis en train de modifier la variable count à l'intérieur de la leng fonction. Voici les choses que j'ai essayé:

  1. Si j'ai mis la variable de comptage à l'extérieur de la lenRecur de la fonction, il fonctionne très bien la première fois, mais si je tente de nouveau sans avoir à redémarrer python shell, le comte (évidemment) ne redémarre pas, il ne cesse d'ajouter de.
  2. Si je change le count += 1 ligne pour count = 1 il fonctionne également, mais la sortie est (évidemment).

Donc, mon but ici est d'obtenir la longueur de la chaîne en utilisant la récursivité, mais je ne sais pas comment faire pour garder une trace du nombre de lettres. J'ai cherché de l'information sur des variables globales, mais je suis toujours bloqué. Je ne sais pas si je ne l'ai pas compris, ou encore si j'ai un problème dans mon code.

Merci d'avance!

ne pouvez pas voir la récursivité lui-même.
Désolé, maintenant, c'est ok!

OriginalL'auteur Carles Mitjans | 2013-06-27