2014-02-13 125 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