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

时间:2018-09-01 06:03:37

标签: python-3.x

我的代码是:-

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,所以该怎么做请帮忙

3 个答案:

答案 0 :(得分:1)

您可以使用sum

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

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

答案 1 :(得分:0)

中断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)

答案 2 :(得分:0)

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

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