2017-05-24 6 views
0

ich diesen Code versuchtPython nicht zu verstehen, wie zu lösen

def out(): 
    x=0 
    for line in range (x,10): 
     x += 1 
     return x 
print out() 

Ausgabeergebnis bekam 1

und wenn ich versucht, diesen Code

def out(): 
    x=0 
    for line in range (x,10): 
     x += 1 
    return x 

print out() 

Got Ausgabeergebnis 10

Aber h ow kann ich Ergebnisse wie 1 2 3 4 5 6 7 8 9 10 mit Funktion

+1

Die Rücksendeanweisung befindet sich in der for-Schleife. In Python return gibt, wie jede andere Sprache, die Funktion an ihren Aufrufpunkt zurück. Um mehr über diesen Blick auf die [Python Docs.] Zu lesen (https://docs.python.org/2/reference/simple_stmts.html#grammar-token-return_stmt) Wenn Sie eine Rückkehr von '[1,2, 3,4,5,6,7,8,9,10] 'dann benutze eine Variablenliste' list = [] 'und füge Dinge an sie an. 'list.append (x)'. –

Antwort

-3

erreichen Sie können dies erreichen, indem Sie die Print-Anweisung in Ihre Schleife.

Beispiel:

def out(): 
    x=0 
    for line in range (x,10): 
     x += 1 
     print x 

Oder wenn Sie alle Zahlen Linie auf einer möchten, können Sie etwas tun:

print(" ".join(range(1,10))) 
4

Es sieht aus wie Sie einen Generator zu machen versuchen. Ein Generator ist wie eine Funktion, außer dass er mehrere Werte liefert, anstatt einen einzelnen Wert zurückzugeben.

def out(): 
    x=0 
    for line in range(x, 10): 
     x += 1 
     yield x 

for item in out(): 
    print(item) 
+2

Ich bin hin und her gerissen, ob die Idee, OP an Generatoren einzuführen, ein guter ist, wenn er nicht in der Lage ist, Listen und die Return-Anweisung richtig zu verwenden (oder zu realisieren, dass er eine 'Range' zurückgeben könnte). – timgeb

+0

Dank dieses mir hilft, versuche ich es auf meinem Code, um es fein

Verwandte Themen