Python 问题打印可被 a 整除的元素的数量



我的代码是:-

list_1 = [i for i in range(1, 51)]
a=int(input())
list_1.remove(a)
count=0
for i in list_1:
if(i%a==0):
count=count+1
print(count)

但是输出来是这样的,当输入12然后输出来是

1
2
3

但是我只需要输出 3,所以如何做到这一点,请帮忙

您可以使用sum.

sum(x % a == 0 for x in list_1)

由于True == 1False == 0,这等于谓词为真的次数。

print(len([i for i in list_1 if i%a == 0]))

这将创建一个包含可分割数字的列表,并获取列表的长度。我还要指出 len(( 是 O(1( 时间复杂度的函数,这意味着只发生一个循环 - 因为列表理解 - 并且列表理解帐篷非常快:)

打破 if 语句并使用结束条件,即 i=50 例如

l=list(range(1,51))
a=int(input())
count=-1
for i in l:
if(i%a==0):
count=count+1
print(count)

最新更新