2013-11-29 116 views
-1

为什么计算机不是x?在它经过循环并找到列表中的某些东西,而不是挑选出来之后,它不应该将该值赋给计算机?函数内循环

def ComputerMove(gameboard): 
    for x in list: 
     if x not in picked and x in list: 
      computer = x 



list = ("b2", "a1", "c3", "a3", "c1", "a2", "b3", "b1", "c2") 

gameboard = {0:' ', 1:' ', 2:' ', 
     3:' ', 4:' ', 5:' ', 
     6:' ', 7:' ', 8:' ', 
     } 
picked = ("b2", "a1", "c3", "a3") 
ComputerMove(gameboard) 
+0

什么应该ComputerMove返回/做什么? – JackMc

+0

这只是调用函数,所以它可以实际运行 – user2864064

回答

2

首先,list是一个类型/ reseved,因此您不能将其用作变量名称。其次,你拥有的是一个元组,而不是一个列表。所以,我转换这些和这段代码似乎工作:

def ComputerMove(gameboard): 
    for x in l: 
     if x not in picked: 
      computer = x 
      return computer # not sure what do you want to do with this value? 



l = ["b2", "a1", "c3", "a3", "c1", "a2", "b3", "b1", "c2"] 

gameboard = {0:' ', 1:' ', 2:' ', 
     3:' ', 4:' ', 5:' ', 
     6:' ', 7:' ', 8:' ', 
     } 
picked = ["b2", "a1", "c3", "a3"] 
ComputerMove(gameboard) 
>>c1 
+0

您*可以*使用保留的关键字作为变量名称,但不推荐。 –

+0

@SteinarLima国际海事组织,这是超越不建议。覆盖类型和关键字是Python中最大的禁忌,这就是为什么我经常告诉新手这是不允许的。只因为口译员会让你觉得这不好。例如在Py 2.x中,你可以做到真,假=假,真的会有人以他们的理智心态做那件事吗? =) – rdodev