2016-10-19 4 views
0
def foo(num,base): 
    if(num>= base): 
     foo(num/base,base) 
    print num%base,num 
numA =126 
numB = 2 
foo(numA,numB) 

In meinem KopfAusdruck Reihenfolge in python2.7

enter image description here

Ergebnisse sollen 1. jedoch als Bild gleich sein, wenn ich den Code ausführen, es kommt wie:

enter image description here.

Erste Zeile ist 1,1. Warum? Die Bedingung erfüllt die Schleife, und es sollte 1,63 in der ersten Zeile und 1,31 in der zweiten Zeile drucken. In der Zwischenzeit, warum 0, 126 endlich druckt?

Antwort

0

Ich denke, was Sie wollten, war so etwas wie unten, wird der 1. Iteration Eingang unter 126, Teilfolge wird num/base

def foo(num,base): 
    print num%base,num 
    if(num>= base): 
     foo(num/base,base) 
+0

Addon sein, die Frage Titel ein bisschen unangemessen ist, wahrscheinlich so etwas wie Frage ändern rekursive Funktionsaufruf – Skycc

+0

Ich ändere den Code entsprechend Ihrer Antwort, und ich verstehe die Ergebnisse, aber ich bin immer noch neugierig auf meinen Code. Ich kann es nicht klar verstehen. Würde mir bitte erklären, ich bin nur eine grüne Hand in Python. –

+0

Vielen Dank. Ich verstehe, was du erklärst. Laut Ihrer Antwort sollten die Ergebnisse (1,63) (1,31) .... (1,1) (0,126) sein. Jedoch, wenn ich den Code ausführe, kam es heraus (1,1) (1,3) ... (1,63) (0,126). Das kann ich immer noch nicht verstehen. –