This could be an interesting error

Michael Torrie torriem at gmail.com
Mon Sep 1 06:52:13 CEST 2014


On 08/31/2014 10:15 PM, Michael Torrie wrote:
> On 08/31/2014 06:04 PM, Seymore4Head wrote:
>>>    for x,letter in enumerate(word):
>>>        # x is index (position), letter is the value at that index
>>>        if letter in "AEIOUaeiou":
>> I tried changing:
>> for x in range(len(test)):
>> to
>> for x in enumerate(test):
> 
> Read my example again. You missed something vital.  enumerate returns
> both a position and the item:
> 

Sigh.  Oops.  Make that:

for x,letter in enumerate("hello"):
    print (x, " ", letter)

You definitely should start doing it this way.  It's more "pythonic" and
also cleaner and easier to understand when you're reading the code later.

Also you did add Y to your list of vowels, but what about words that
have no vowels and no Y?  Maybe not real words, but things that might be
likely to be in sentences:  "I am from Washington, DC"

It's way better to fix your logic so you have a fall-back.  Hint: Set
pigword before your enter the loop so that it always contains
_something_, preferably the original word!



More information about the Python-list mailing list