Question

I thought everything was properly indented here but I am getting an IndentationError: expected an indented block at the else: statement. Am I making an obvious mistake here?

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
Was it helpful?

Solution

Do nothing translates to using the pass keyword to fill an otherwise empty block (which is not allowed). See the official documentation for more information.

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

OTHER TIPS

You need to put something inside the if block. If you don't want to do anything, put pass.

Alternatively, just reverse your condition so you only have one block:

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

Incidentally, I don't think your code will do what you intend it to do, but that's an issue for another question.

You can't do this.

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

Try:

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

This can be caused by mixing tabs and spaces. However, this is probably caused by having nothing inside your if statement. You can use "pass" as a placeholder (see example below).

    if condition:
        pass

Information on pass: http://docs.python.org/release/2.5.2/ref/pass.html

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top