Python统计数组中绵羊数量的函数报错,求正确实现方案
修正统计绵羊数量的Python函数
你的代码存在三个关键问题,导致返回None而不是正确的统计结果:
- 类型判断错误:数组中的元素是布尔值
True/False,但你却和字符串'True'做比较,这个条件永远不会触发。 - 提前终止函数:遇到非
'True'的元素就返回None,这会让函数在遍历到第一个False时直接停止,根本无法完成整个数组的统计。 - 统计逻辑错误:就算条件判断正确,
total += i的写法虽然布尔值True会被转为1,但直接加1的逻辑更清晰直观。
修正后的基础版本
def count_sheeps(sheep): total = 0 for i in sheep: if i: # 布尔值True本身为真,直接判断即可 total += 1 return total
更简洁的Pythonic写法
利用Python的sum()函数可以直接统计布尔值数组的True数量(因为True在数值上等价于1,False等价于0):
def count_sheeps(sheep): return sum(sheep)
测试你提供的数组,两个版本都会返回正确结果17。
内容的提问来源于stack exchange,提问作者i_am_pro
相关产品推荐
相关产品推荐

