Python 如何找到一个程序,将只可被某些数字整除的数字相加

Python 如何找到一个程序,将只可被某些数字整除的数字相加,python,Python,对不起,我是Python新手。我想找到一个Python程序,它将查找可被a和b整除但不能被c整除的整数1到n的和 例如,如果 n = 20, a = 3, b = 4 and c = 5 我们会: 3 + 4 + 6 + 8 + 9 + 12 + 16 我现在拥有的代码类似于: def summing(n): x = sum(k for k in xrange(n) if (k%3==0) or (k%4==0)) return x - sum(k

对不起,我是Python新手。我想找到一个Python程序,它将查找可被a和b整除但不能被c整除的整数1到n的和

例如,如果

n = 20, a = 3, b = 4 and c = 5 
我们会:

3 + 4 + 6 + 8 + 9 + 12 + 16 
我现在拥有的代码类似于:

   def summing(n):
        x = sum(k for k in xrange(n) if (k%3==0) or (k%4==0))
        return x - sum(k for k in xrange(n) if (k%5==0))
但是,我知道这是不对的,因为它减去5的倍数,即使它们不能被3或4整除

def sumNumInRange(n):
    return sum(k for k in xrange(n) if k % 5 != 0 and (k % 3 == 0 or k % 4 == 0))

也不要考虑像“代码> 3”/代码>、<代码> 4 < /代码>和<代码> 5 <代码>之类的硬编码值。最好将它们作为参数传递给函数。

sum(如果k%a==0和k%b==0和k%c!=0,那么xrange(1,n)中的k代表k)
你的意思是“。可以被a整除或被b整除,但不能被c整除”?如果你真的想要从1到
n
的整数,您可能想让您的
xrange
调用
xrange(1,n+1)
。Python的范围从ant zero开始,并且不包括上限,因此
n
将不包括在内(zero将包括在内,但这是相当无害的)。更改函数名可能是一个好主意,因为sum在pythonI中已经是一个函数,但它没有否决,但可能是因为您硬编码了3、4和5。您应该让函数接受参数
a
b
c
。尽管如此,投反对票还是有点傻。。。