|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
问问各位大佬们为什么这题选A不选B啊 我试了一下B的值跟A一样的,感谢回复w
133、已知函数定义如下,则求100以内能被3或5整除的数的个数,可以采用( )。
g=lambda x:1 if x%3==0 or x%5==0 else 0
A、 sum([g(i) for i in range(1,100)])
B、 sum(g(i) for i in range(1,100))
C、 sum([i for i in range(1,100) if g(i)==1])
D、 以上均不是
答案: A
在给定的问题中,我们需要计算100以内能被3或5整除的数的个数。我们已经给出了一个函数g,该函数返回1(True)如果给定的数可以被3或5整除,否则返回0(False)。
选项A、B、C都是使用列表推导式和sum函数来计算满足条件的数的个数。让我们逐个分析选项:
A选项:sum([g(i) for i in range(1,100)])
这个选项使用了列表推导式,在范围1到99内对每个数调用了函数g。列表推导式生成一个由0和1组成的列表,其中1代表满足条件,0代表不满足条件。然后使用sum函数对列表中的元素求和,得到满足条件的数的个数。
B选项:sum(g(i) for i in range(1,100))
这个选项使用了生成器表达式,与A选项类似,对范围1到99内的每个数调用了函数g。生成器表达式生成一个迭代器,而不是立即创建一个列表。然后使用sum函数对迭代器中的元素求和。
C选项:sum([i for i in range(1,100) if g(i)==1])
这个选项使用了条件判断来筛选出满足条件的数,并将它们放入列表中。然后使用sum函数对列表中的元素求和。
根据题目中给出的函数g的定义,无论是A选项、B选项还是C选项,它们都可以正确计算100以内能被3或5整除的数的个数。但是题目要求选择一个选项,因此答案是A选项。
因此,选择A选项sum([g(i) for i in range(1,100)])来计算100以内能被3或5整除的数的个数是正确的。
|
|