我正在尝试创建一个代码(在python中),我可以输入一个范围,除了那些可以被x整除的数字(我也选择)之外,它会找到所有数字的总和。
例如:
如果范围是0<N<10
和x = 3
,那么我希望代码对数字求和
1 + 2 + 4 + 5 + 7 + 8
并输出27。
或者范围是0<N<5
和x = 2
我希望代码对数字求和
1 + 3
并输出4
但是,问题是我不知道该怎么做。任何人都可以帮助我吗?
答案 0 :(得分:3)
对于您的第二个示例:(0<N<5
,x=2
):
sum(i for i in range(1, 5) if i%2)
答案 1 :(得分:2)
def fn(N, x):
sum = 0
for i in range(N):
if i%x:
sum += i
return sum
答案 2 :(得分:1)
你可以这样做:
>>> div = 3
>>> n = 10
>>> num_div = filter(lambda x: x%div, range(n))
>>> sum(num_div)
27
或作为一种功能
def func(n,div):
return sum(filter(lambda x: x%div, range(n))
答案 3 :(得分:0)
其他答案隐含地假设范围始终从0开始。如果您希望能够设置范围的起点和终点,则可以使用:
def sumrange(start, stop, n):
return sum(i for i in range(start, stop) if i%n)