首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >listing函数的困难

listing函数的困难
EN

Stack Overflow用户
提问于 2018-10-04 13:32:05
回答 3查看 59关注 0票数 1

编写一个名为"counting“的函数,该函数接受一组数字作为参数,并返回输入中介于29.88和48.05之间的值的数量,但不包括这些端点。(我的代码如下)

代码语言:javascript
复制
def counting(number):
    sum = 0
    for x in number:
        if (29.88 < x < 48.05):
            sum = sum + x
        return sum

如何返回输入中的值的数量,而不是输入的第一个数字?

EN

回答 3

Stack Overflow用户

发布于 2018-10-04 13:34:50

您的return语句缩进太深;您应该在for循环之后返回它。此外,sum不是一个好名字,因为它是一个可以覆盖的内置函数。

并且您应该将1加到sum中(您正在计数),而不是x本身。

您也可以使用内置函数sum尝试执行此操作

代码语言:javascript
复制
def counting(number):
    return sum(29.88 < x < 48.05 for x in number)

(这实际上是sum(1 for x in number if 29.88 < x < 48.05)的缩写,因为True基本上是1,而False基本上是0)。

票数 1
EN

Stack Overflow用户

发布于 2018-10-04 13:40:05

或者和你的相似:

代码语言:javascript
复制
def counting(number):
    c = 0
    for x in number:
        if 29.88 < x < 48.05:
            c += 1
    return c

或者可以使用一行代码,len

代码语言:javascript
复制
def counting(number):
    return len([29.88 < x < 48.05 for x in number])
票数 0
EN

Stack Overflow用户

发布于 2018-10-04 14:27:34

您还可以在列表中使用filter(),以便只保留给定函数计算为真的元素。

代码语言:javascript
复制
def counting(number):
    return len(list(filter(lambda x: 29.88 < x < 48.05, number)))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52639628

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档