它(应该,对我来说,)说True
如果只有字符串中的元音(短语); 说,否则False
。 我不明白为什么它总是会返回False
的,因为(X> = X)总是返回True
。 我感谢任何人检查解决这个查询。
(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
注意:
>>> 'abc'.count('')
4
通过一个空字符串count
给你比字符串的长度多一个(因为它找到一个空字符串在两端以及每对字符之间)。 你为什么不只是使用len(abc)
更一般地,有更好的方法做,你在做什么。 也许就像这样:
def valid_letter_sequence(abc):
return not (set(abc) - set('AEIOU'))
当然,你应该用len()
发现的长度abc
。 的另一个缺点count()
的是,它需要重新扫描的字符串。 Python已经知道了长度,所以它更有效地自讨苦吃。
all
允许的功能,只要遇到一个字符不是“AEIOU”返回。 这被称为短路评价
def valid_letter_sequence(abc):
return all(x in "AEIOU" for x in abc)
文章来源: why is that str.count('') ≠ (from str.count('A') + str.count('B') + … + str.count('Z'))