It (should, to me,) say True
if there are only vowels in the string(phrase); otherwise says False
. I don't understand why it always will return False
, since (x >= x) always returns True
.
I thank anyone for checking the solution to this query.
(str) -> bool
def valid_letter_sequence(abc):
valid_letters = abc.count('A') + abc.count('E') + abc.count('I') + abc.count('O') + abc.count('U')
counted_letters = abc.count('')
if valid_letters >= counted_letters:
return True
else:
return False
You should of course be using
len()
to find the length ofabc
. Another disadvantage ofcount()
is that it needs to scan the string again. Python already knows the length, so it's more efficient to just ask for it.all
allows the function to return as soon as it encounters a character not in "AEIOU". This is known as short circuit evaluationObserve:
Passing an empty string to
count
gives you one more than the length of the string (because it finds the empty string at both ends as well as between every pair of characters). Why don't you just uselen(abc)
?More generally, there are better ways to do what you're doing. Like maybe this: