Python-Neuling hier, läuft 2.7.Funktion iteriert mit Druck, aber nicht mit Rückgabe
Ich versuche, ein Programm zu erstellen, das eine Funktion verwendet, um Text zu generieren, und gibt dann den funktionsgenerierten Text in einer Datei aus.
Wenn nur die Funktion in Powershell-Druck (wie folgt aus: http://codepad.org/KftHaO6x), es durchläuft, wie ich will es:
def writecode (q, a, b, c):
while b < q:
b = b + 1
print "v%d_%d_%d = pairwise (caps[%d],sals[%d],poss[%d],poss[%d],poss[%d],pos_range)" %(a,b,c,a,a,a,b,c)
print "votes%d_%d.append(v%d_%d_%d)" % (b,c,a,b,c,)
print "v%d_%d_%d = pairwise (caps[%d],sals[%d],poss[%d],poss[%d],poss[%d],pos_range)" %(a,c,b,a,a,a,c,b)
print "votes%d_%d.append(v%d_%d_%d)" % (c,b,a,c,b)
writecode (5,1,0,4)
Wenn die Ausgabe versucht, die Funktion in eine Datei (dies wie: http://codepad.org/8GJpp9QY), es gibt nur 1-Wert, dh nicht iterieren nicht:
def writecode (q, a, b, c):
while b < q:
b = b + 1
data_to_write = "v%d_%d_%d = pairwise (caps[%d],sals[%d],poss[%d],poss[%d],poss[%d],pos_range)" %(a,b,c,a,a,a,b,c)
data_to_write_two = "votes%d_%d.append(v%d_%d_%d)" % (b,c,a,b,c,)
data_to_write_three = "v%d_%d_%d = pairwise (caps[%d],sals[%d],poss[%d],poss[%d],poss[%d],pos_range)" %(a,c,b,a,a,a,c,b)
data_to_write_four = "votes%d_%d.append(v%d_%d_%d)" % (c,b,a,c,b)
return data_to_write
return data_to_write_two
return data_to_write_three
return data_to_write_four
x = writecode (5,1,0,4)
out_file = open("code.txt", "a")
out_file.write(x)
out_file.close()
Warum ist das und wie kann ich die Ausgabefunktion Iterierte machen (wie es mit Druck der Fall ist)?
Die 'return' Anweisung ** ** beendet die Funktion (wie in den meisten (alle) Sprachen?): Http://docs.python.org/reference/simple_stmts.html#the-return-statement –
Danke an Hamish, dass Sie hier den eigentlichen Code in die Frage gestellt haben ... –
Wenn Sie etwas zurückgehen, scheinen Sie Code-Generierung zu verwenden. Warum führst du den Code nicht direkt aus?Oder etwas zu deiner größeren Aufgabe sagen? –