Wednesday 19 December 2018

string - Detecting Vowels vs Consonants In Python




What silly mistake am I making here that is preventing me from determining that the first letter of user input is a consonant? No matter what I enter, it allows evaluates that the first letter is a vowel.




original = raw_input('Enter a word:')
word = original.lower()
first = word[0]

if len(original) > 0 and original.isalpha():
if first == "a" or "e" or "i" or "o" or "u":
print "vowel"
else:
print "consonant"
else:

print "empty"

Answer



Change:



if first == "a" or "e" or "i" or "o" or "u":


to:




if first in ('a', 'e', 'i', 'o', 'u'):  #or `if first in 'aeiou'`


first == "a" or "e" or "i" or "o" or "u" is always True because it is evaluated as



(first == "a") or ("e") or ("i") or ("o") or ("u"), as an non-empty string is always True so this gets evaluated to True.



>>> bool('e')
True


No comments:

Post a Comment

php - file_get_contents shows unexpected output while reading a file

I want to output an inline jpg image as a base64 encoded string, however when I do this : $contents = file_get_contents($filename); print &q...