Your problem is that every time you use or
you need a separate conditional. Otherwise, you are simply evaluating "e"
which is always True
.
Just check if it is in a list like so:
my_name = 'Alexander'
for l in my_name:
if l.lower() in ["a", "e", "i", "o", "u"]: #str.lower() is to check regardless of capitalization
print("give me an " + l + " !")
else:
print('give me a '+l +" !")
If you check the boolean value of a string, it is always True
:
>>> bool("e")
True
>>>
And so the code would always enter the if
.
>>> for l in my_name:
... if l.lower() in ["a", "e", "i", "o", "u"]: #str.lower() is to check regardless of capitalization
... print("give me an " + l + " !")
... else:
... print('give me a '+l +" !")
...
give me an A !
give me a l !
give me an e !
give me a x !
give me an a !
give me a n !
give me a d !
give me an e !
give me a r !
>>>