我試圖做一個網格,從(0,0),每個不同的功能,改變了你的價值,這是代碼:這個程序爲什麼不改變一個整數的值?
X = 0
Y = 0
MaximumX = 5
MinimumX = -5
MaximumY = 5
MinimumY = -5
def Move(Direction):
Direction_functions[Direction]
print (str(X),",",str(Y))
def Left(CoordinateX):
if CoordinateX != MinimumX:
CoordinateX -= 1
else:
Fail()
def Right(CoordinateX):
if CoordinateX != MaximumX:
CoordinateX += 1
else:
Fail()
def Up(CoordinateY):
if CoordinateY != MinimumY:
CoordinateY -=1
else:
Fail()
def Down(CoordinateY):
if CoordinateY != MaximumY:
CoordinateY += 1
else:
Fail()
def Fail():
print ("Failure\n", str(X),",",str(Y))
Direction_functions = [Left(int(X)), Right(int(X)), Up(int(Y)), Down(int(Y))]
while True:
Number = input("")
Move(int(Number)) #Infinite loop is for testing purposes
這是試圖向左移動後的輸出:
>>> ================================ RESTART ================================
>>>
1
0 , 0
1
0 , 0
1
0 , 0
1
0 , 0
1
0 , 0
1
0 , 0
1
0 , 0
而不是發佈垃圾文本,你可以解釋你期望的輸出。 –
此外,您的路線數組包含值,而不是函數(當數組初始化時函數只調用一次)。如果你想要一個函數數組,它看起來像'Direction_functions = [Left,Right,Up,Down]' –