我想將整數傳遞給函數。我認爲這可能不起作用,因爲我多次打電話給它?例如,我在一個名爲Alist的函數中創建一個2d矩陣,然後返回它。通過第二個函數,我傳遞了Alist,並指定了我想要從Alist返回的值的位置。最後(到目前爲止),第三個函數將要求返回的值和Alist。 Alist打印的正確,但返回的值(節點)打印0時,它應該是4.我想它是使用node = 0變量聲明在代碼的頂部,但我不知道爲什麼。python傳遞函數之間的變量
NETWORK.TXT的第一行是這樣的: 0,2,4,1,6,0,
Alist = []
node = 0
file = ("F:/media/KINGSTON/Networking/network.txt")
def create_matrix(file):
with open('network.txt') as f:
Alist = []
for line in f:
part = []
for x in line.split(','):
part.append(int(x))
Alist.append(part)
return Alist
def start_node(Alist):
node = Alist[0][2]
print (node)
return node
#test neighbours to see if they can be used
def check_neighbours(node, Alist):
print (Alist)
print (node)
#check for neighbours. if we start at [0][0] we must look for [0][1]
#and [1][0]. Figure out how to add 1 to each cell to navigate across.
#running of code begins here
Alist = create_matrix(file)
start_node(Alist)
check_neighbours(node, Alist)
您需要向我們展示的是調用這些函數的代碼。理想的問題是[SSCCE](http://sscce.org) - 我們可以針對您的輸入執行某項操作,並查看輸出與預期輸出的不同。 – abarnert 2013-03-18 17:52:31
與此同時,讓全局變量,函數參數和局部變量都具有相同的名稱是非常令人困惑的,它是一個紅色的標誌,您希望我們看不到代碼中的某種魔力。例如,在'start_node'中設置的'node'不是全局的。它被返回,但除非調用者正在做'node = start_node(Alist)'來設置全局,否則全局不會改變,所以值將仍爲0. – abarnert 2013-03-18 17:53:56
@abarnert已更新 – bigl 2013-03-18 17:55:15