Unterhalb des Codes zum Zählen der Zahl "1" in String.So verwenden Sie die Zählervariable im Rumpf der rekursiven Funktion
count2=0 #global variable
def Ones(s):
no=0;
global count2 #wanted to eliminate global variable
if(count2>=len(s)):
return no
if(s[count2]=='1'):#count2 is the index of current character in String
no = no+1
count2=count2+1
return no + Ones(s)
else:
count2=count2+1
return Ones(s)
in dem obigen Code count2 als globaler Variable verwendet wird, ist es eine Art und Weise, count2 Variable als lokal innerhalb der Funktion zu deklarieren und zu verwenden, hat versucht, wie aber kein Glück
def Ones(s):
count2=0 # but everytime it get reset to zero
Hinweis : Anzahl der Parameter der Funktion sollte nur eine bleiben und keine andere Hilfsfunktion verwenden müssen.
Können Sie beschreiben, was der Algorithmus versucht? Ist 'count2' der Index des aktuellen Charakters zu bewerten? Könnten Sie einen zweiten Parameter mit einem Standardwert haben, der effektiv eine Einzelparameterfunktion ist? – jonrsharpe
@jonrsharpe ja count2 ist Index des aktuellen Charakters – Roushan45
Dann ist das kein sehr guter Name dafür. Auch wenn Sie keine spezielle Rekursion benötigen, können Sie 'counter (s) [' 1 ']' zurückgeben. – jonrsharpe