2014-07-15 97 views
-1

我只學習了Python 1周。這是我的代碼:Python中嵌套的「for」循環 - 相同的循環但不工作 - 海龜

def board(): 
    colorA=input("Please choose a first color for the CheckerBoard: ") 
    colorB=input("Please choose a second color for the CheckerBoard: ") 
    size=int(input("Please choose a box size: ")) 
    num=int(input("Please choose a side length for the board: ")) 
    x=-250 
    y=250 
    c=colorA 
    x=-250 
    for num in range(num): 
     y=y-size 
     for num in range(num): 
      Fbox(x,y,size,c) 
      x=x+size 
      if(c==colorA): 
       c=colorB 
      elif(c!=colorA): 
       c=colorA 

它只是幾乎忽略了第一個「for」循環。

+2

爲了理智,不要爲相同目的重複使用相同的變量。 – user2864740

+0

對不起....我剛開始。 – user3838965

回答

1

核心問題是重複使用num作爲循環變量 - 使用不同的變量。相同的變量的該再利用使第一內部循環運行有效for num in range(0)和第二for num in range(1)等(如num是由外環每次迭代重新分配。)

代替代碼應具有環等for x in range(num) .. for y in range(num)。其中xy作爲循環變量被引入,並且而不是在循環之外被引入,如當前所做的那樣。

然後可以使用x*size+offset_x來計算該位置;這也消除了手動進行x/y增量的需要。使用上述步驟邏輯,那將是

x_pos = x * size - 250 
y_pos = (-1 * y) * size + 250 
Fbox(x_pos, y_pos, size, c)