Python新手在這裏,運行2.7。函數迭代打印但不返回
我正在嘗試創建一個程序,該程序使用函數來生成文本,然後將函數生成的文本輸出到文件中。
如果只是打印在PowerShell中的功能(如下:http://codepad.org/KftHaO6x),進行迭代,因爲我希望它:
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)
當試圖輸出功能到一個文件中(這樣的:http://codepad.org/8GJpp9QY)它只提供了1個值,即不重複:
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()
這是爲什麼,我怎麼可以使輸出功能迭代(如將其與打印一樣)?
的'return'聲明** **終止函數(如在大多數(全部)的語言嗎?):http://docs.python.org/reference/simple_stmts.html#the-return-statement – 2012-08-01 20:17:14
感謝Hamish將實際的代碼放在這裏的問題中...... – 2012-08-01 20:18:34
回過頭來,你似乎在使用代碼生成。你爲什麼不直接執行代碼?或者說一些關於你更大的任務? – 2012-08-01 20:23:27