为了账号安全,请及时绑定邮箱和手机立即绑定

上市功能困难

上市功能困难

FFIVE 2021-07-01 16:00:09
编写一个名为“counting”的函数,它接受一个数字列表作为参数,并返回输入中 29.88 到 48.05 之间不包括这些端点的值的数量。(我的代码如下)def counting(number):    sum = 0    for x in number:        if (29.88 < x < 48.05):            sum = sum + x        return sum如何返回输入中的值数而不是输入的第一个数字?
查看完整描述

3 回答

?
慕田峪9158850

TA贡献1794条经验 获得超7个赞

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

并且您应该添加1到总和(您正在计算)而不是x它本身。

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

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)并且有效的缩写,因为Trueis basic1并且Falseis basic 0)。


查看完整回答
反对 回复 2021-07-06
?
慕运维8079593

TA贡献1876条经验 获得超5个赞

或者与您的相似:


def counting(number):

    c = 0

    for x in number:

        if 29.88 < x < 48.05:

            c += 1

    return c

或者可以做单线,len:


def counting(number):

    return len([29.88 < x < 48.05 for x in number])


查看完整回答
反对 回复 2021-07-06
  • 3 回答
  • 0 关注
  • 166 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信