3

我需要帮助做一个程序,它应该接收十个数字并返回我输入的负整数的数量。

例子:

如果我输入:

1,2,-3,3,-7,5,4,-1,4,5

该程序应该返回我3

我该怎么做?

4

3 回答 3

50

分解你的问题。你能找出一种方法来检查一个数字是否为负吗?

if number < 0:
    ...

现在,我们有很多数字,所以我们循环它们:

for number in numbers:
    if number < 0:
        ...

那么我们想要做什么呢?数一数。所以我们这样做:

count = 0
for number in numbers:
    if number < 0:
        count += 1

更理想的是,这可以很容易地使用生成器表达式内置的:sum()

>>> numbers = [1, 2, -3, 3, -7, 5, 4, -1, 4, 5]
>>> sum(1 for number in numbers if number < 0)
3
于 2013-04-13T22:24:24.380 回答
30
sum(n < 0 for n in nums)

这是最 Pythonic 的方式。

于 2013-04-14T00:31:52.080 回答
2

或者您可以使用过滤器“过滤”出负面因素。

total = len(filter(lambda x: x < 0, my_list))

于 2013-04-13T22:32:26.240 回答