On 2015-10-28 08:09, Vusa Moyo wrote:
Hi Guys,

I've written a script to remove vowels from a string/sentence.

the while loop I'm using below is to take care of duplicate vowels found in
a sentence, ie

anti_vowel('The cow moos louder than the frog')

It works, but obviously its messy and n00by. Any suggestions on how I can
write this code better?


----
def anti_vowel(text):
    vowel = ['a', 'e', 'i', 'o', 'u']
    VOWEL = ['A', 'E', 'I', 'O', 'U']
    manip = []

    for i in text:
        manip.append(i)
    fufu = 0
    #
    while fufu < 16:
        for x in vowel:
            if x in manip:
                manip.remove(x)

        for y in VOWEL:
            if y in manip:
                manip.remove(y)

        fufu = fufu + 2

    strong = ''.join(manip)
    return strong

----

Thanks - Vusa

This struck me as a good place to utilize list comprehension.


VOWELS = 'aeiouAEIOU'

def remove_chars(s, chars2remove=VOWELS):
    """Returns the string s but without any of
    the characters found in chars2remove.
    If given only one parameter, defaults to removing vowels.
    """
    s_as_list = [char for char in s]
    without_chars2remove = [
        char for char in s_as_list if char not in chars2remove]
#   print(s_as_list)              # for testing
#   print(without_chars2remove)   #    ditto
    return "".join(without_chars2remove)

if __name__ == "__main__":
    print(remove_chars(
        'The cow moos louder than the frog'))



There may be some other constructs (the string join method on the empty string)
to which you haven't yet been exposed.
Confession: I'm submitting it probably as much to garner comments from the
pundits as to help you.
cheers,
Alex
_______________________________________________
Tutor maillist  -  [email protected]
To unsubscribe or change subscription options:
https://mail.python.org/mailman/listinfo/tutor

Reply via email to