我遇到this CodingBat问题:
给定一个整数列表,返回负值的计数。
count_negative([-1, -2, -3]) → 3
count_negative([2, 2, 2, 2, 2]) → 0
count_negative([-5, -3, 4]) → 2
为什么这段代码不能正确运行?
def count_negative(list):
for value in list:
total = 0
total += value
return total
3条答案
按热度按时间8nuwlpux1#
每次循环后都要将
total
设置回零,将其置于循环之外:同样,函数在第一次循环后会中断,因为函数返回了一些东西后就会中断,同样把
return total
放在循环之外:我看不出这将如何确定一个数是否为负数。你可以在循环中使用if语句。
或者你可以使用列表解析:
顺便说一句,千万不要命名
list
。它会覆盖内置的。我很惊讶你的问题做到了这一点。iq0todco2#
无循环和条件:
mwkjh3gx3#
将其转换为
pd.DataFrame
,然后使用df[df>0].count()/len(df)