Diese Frage scheint ein wenig spezifisch, und dafür tut es mir leid, aber es hat mich ratlos. Ich schreibe mir selbst einen Passwortgenerator, der eine Zeichenfolge (die URL einer Website) annimmt und diese in ein sicheres Passwort umwandelt, das nicht anhand des Namens der Website zurückverfolgt werden kann.Wie gibt man einen Wert von einer rekursiven Python-Funktion zurück?
In Teil des Codes, habe ich eine rekursive Funktion, die wie folgt aussieht:
def get_number(n = 0, nums = ''):
for i in range(0, len(url)):
#both n and nums are changed
if len(nums) < num_length:
get_number(n, nums)
else:
print(nums)
return(nums)
...
print(get_number())
Ich würde erwarten, 'nums' zur Ausgabe zweimal, da ich drucke es im else Block und drucken Sie die Rückkehr später. Wenn es jedoch eine rekursive Schleife durchläuft, wird 'nums' aus dem Else-Block gedruckt und die Funktion gibt 'None' zurück. Wenn if len(nums) < num_length
beim ersten Mal falsch ist, gibt es den richtigen Wert zurück.
Warum würde es "None" zurückgeben, wenn ich verifiziert habe, dass das Objekt, das es zurückgibt, tatsächlich nicht "None" ist?
Ich bin ein wenig neu in Python, behandeln sie Rekursionen anders?
Vielen Dank für Ihre Zeit
Edit:
Problem behoben. Eine Rückgabeanweisung für den rekursiven Aufruf wurde vergessen. Danke: D
Sah genau darüber aus. Vielen Dank –
Gern geschehen! Wenn Ihr Problem behoben ist, würde es Ihnen etwas ausmachen, die Antwort als akzeptiert zu markieren? Dies hilft dem Filter für Leute, die nach unbeantworteten Fragen suchen :) – Karin