2014-03-02 21 views
0
for x in range(1, width-1): 
for y in range(1, height-1): 
    px = (sobel_x[0][0] * G[x-1][y-1]) + (sobel_x[0][1] * G[x][y-1]) + \ 
     (sobel_x[0][2] * G[x+1][y-1]) + (sobel_x[1][0] * G[x-1][y]) + \ 
     (sobel_x[1][1] * G[x][y]) + (sobel_x[1][2] * G[x+1][y]) + \ 
     (sobel_x[2][0] * G[x-1][y+1]) + (sobel_x[2][1] * G[x][y+1]) + \ 
     (sobel_x[2][2] * G[x+1][y+1]) 

    py = (sobel_y[0][0] * G[x-1][y-1]) + (sobel_y[0][1] * G[x][y-1]) + \ 
     (sobel_y[0][2] * G[x+1][y-1]) + (sobel_y[1][0] * G[x-1][y]) + \ 
     (sobel_y[1][1] * G[x][y]) + (sobel_y[1][2] * G[x+1][y]) + \ 
     (sobel_y[2][0] * G[x-1][y+1]) + (sobel_y[2][1] * G[x][y+1]) + \ 
     (sobel_y[2][2] * G[x+1][y+1]) 

如何正確地寫這些「爲」 Python中的循環,我的版本的does not工作, 它帶回了一個錯誤:「意外縮進」在varibale py前面。如何正確地寫這些「爲」 Python中的循環,我的版本的does not工作

+3

第一個循環中的所有代碼也應該縮進 – ton1c

回答

0

編輯視圖顯示您正在混合製表符和空格。不要那樣做;將製表符轉換爲空格,否則Python會誤解您的縮進。 (我假設你的實際代碼在第一行之後有一個縮進,否則錯誤信息會不一樣)。

1

你的腳本同時使用了製表符和空格作爲縮進。 在Unix上你可以看到使用cat -A標籤(由^I表示):

% cat -A ~/tmp/data 
    for x in range(1, width-1):$ 
    for y in range(1, height-1):$ 
     px = (sobel_x[0][0] * G[x-1][y-1]) + (sobel_x[0][1] * G[x][y-1]) + \$ 
      (sobel_x[0][2] * G[x+1][y-1]) + (sobel_x[1][0] * G[x-1][y]) + \$ 
      (sobel_x[1][1] * G[x][y]) + (sobel_x[1][2] * G[x+1][y]) + \$ 
      (sobel_x[2][0] * G[x-1][y+1]) + (sobel_x[2][1] * G[x][y+1]) + \$ 
      (sobel_x[2][2] * G[x+1][y+1])$ 
^I^I$ 
^I^Ipy = (sobel_y[0][0] * G[x-1][y-1]) + (sobel_y[0][1] * G[x][y-1]) + \$ 
      (sobel_y[0][2] * G[x+1][y-1]) + (sobel_y[1][0] * G[x-1][y]) + \$ 
      (sobel_y[1][1] * G[x][y]) + (sobel_y[1][2] * G[x+1][y]) + \$ 
      (sobel_y[2][0] * G[x-1][y+1]) + (sobel_y[2][1] * G[x][y+1]) + \$ 
      (sobel_y[2][2] * G[x+1][y+1])$ 

確保只使用空格(或唯一選項卡)縮進。 (如果使用4空間縮進(這是慣例),則還可以使用文本編輯器,該文本編輯器可以配置爲在按TAB時插入空格)。