2014-02-13 126 views
1

我以爲一切都在這裏正確縮進,但我得到一個IndentationError:預計縮進塊其他:聲明。我在這裏犯了一個明顯的錯誤嗎?Python:預期的縮進塊

def anti_vowel(text): 
    new_string = "" 
    vowels = "aeiou" 
    for letter in text: 
     for vowel in vowels: 
      if (lower(letter) == vowel): 
       #do nothing 
      else: 
       #append letter to the new string 
       new_string += letter 
    return new_string 
+3

空塊,你應該使用'pass'。 –

+2

如果你已經知道你必須在'if'塊中加入一些東西,並認爲你有......評論不是一個聲明。最簡單的想法就好像在代碼被解析之前註釋被移除一樣。 – abarnert

回答

5

什麼都不做轉換爲使用pass關鍵字來填充一個空的塊(這是不允許的)。有關更多信息,請參閱official documentation

def anti_vowel(text): 
    new_string = "" 
    vowels = "aeiou" 
    for letter in text: 
     for vowel in vowels: 
      if (lower(letter) == vowel): 
       #do nothing 
       pass 
      else: 
       #append letter to the new string 
       new_string += letter 
    return new_string 
+2

尼斯教程鏈接進一步解釋。 – abarnert

7

您需要在if塊中添加內容。如果您不想做任何事情,請輸入pass

或者,只是扭轉你的病情,所以你只有一個塊:

if lower(letter) != vowel: 
    new_string += letter 

順便說一句,我不認爲你的代碼會做你想讓它做什麼,不過那是另外一個問題一個問題。

0

你不能這樣做。

if (lower(letter) == vowel): 
    #do nothing 

嘗試:

if (lower(letter) == vowel): 
    #do nothing 
    pass 
-1

這可以通過混合製表符和空格引起的。但是,這可能是由於if語句內沒有任何內容引起的。您可以使用「pass」作爲佔位符(請參閱下面的示例)。

if condition: 
     pass 

上傳遞信息:http://docs.python.org/release/2.5.2/ref/pass.html

+1

公平地說,這個例子中沒有標籤。不過,對於「通行證」+1。 – admdrew

+1

嗯,我跳了一下槍,我已經修改了我的答案:) – Toby