如果字符串(短语)中只有元音,那么(对我而言)会说True
;否则说False
。我不明白为什么它总会返回False
,因为(x> = x)总是返回True
。
我感谢任何人检查此查询的解决方案。
(str) - >布尔
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
答案 0 :(得分:6)
观察:
>>> 'abc'.count('')
4
将空字符串传递给count
会给你多一个字符串的长度(因为它在两端以及每对字符之间找到空字符串)。你为什么不用len(abc)
?
更一般地说,有更好的方法来做你正在做的事情。就像这样:
def valid_letter_sequence(abc):
return not (set(abc) - set('AEIOU'))
答案 1 :(得分:1)
您当然应该使用len()
来查找abc
的长度。 count()
的另一个缺点是它需要再次扫描字符串。 Python已经知道了它的长度,因此只需要它就可以了。
all
允许函数在遇到不在“AEIOU”中的字符时立即返回。这称为short circuit evaluation
def valid_letter_sequence(abc):
return all(x in "AEIOU" for x in abc)