我想创建一个函数my_sum_div(a, b, div=10)
,它将计算从a
到b
的数字之和,打印出这个总和,以及{{1}类型的所有中间总和可以被a+(a+1)+(a+2)+(a+3)
整除的。
我希望该程序的工作方式如下:
div
输出应如下所示:
my_sum_div(1, 10, 2)
现在我已经这样做了:
sums divisible by 2:
6
10
28
36
sum of numbers between 1 and 10 is: 55
我已经尝试了几个小时。我知道我的代码只检查 def my_sum(a, b):
print("sum of numbers between", a," and", b," is", sum(i for i in
range(a, b+1)))
def my_sum_div(a, b, div = 3):
print("sums divisible by", div,":")
l = []
s = ","
x = sum(i for i in range(a, b+1)
for i in range(a, b+1):
if (i%div==0):
l.append(str(i))
print(s.join(l))
print("sum of numbers between", a, " and", b, " is", sum(i for i in
range(a, b + 1))
之间的(a, b+1)
可以被div
整除的数字,但是我如何才能使函数计算并打印所有可被div
整除的中间和?我的第一个函数只计算给定间隔中所有整数的总和。我现在希望后续函数计算在给定间隔内可被div整除的所有中间和,并打印所有这些。
提前谢谢。
答案 0 :(得分:1)
def my_sum_div(start, end, d):
my_sum = 0
for x in range(start, end+1):
my_sum += x
if my_sum % d == 0:
yield my_sum
# yield my_sum # <-- uncomment this if you want the total
# sum to be returned at the end
使用上面的生成器,您可以一次生成一个结果,next()
为:
>>> my_generator = my_sum_div(1, 10, 2)
>>> next(my_generator)
6
>>> next(my_generator)
10
>>> next(my_generator)
28
或者您可以一次性获得所有结果的列表:
>>> list(my_sum_div(1, 10, 2))
[6, 10, 28, 36]
带有注释版代码的结果,最终产生总计my_sum
:
>>> list(my_sum_div(1, 10, 2))
[6, 10, 28, 36, 55]
在Python 3中,您可以将两个变量中间值和总和的总和存储为:
>>> *intermediate_sum, total_sum = list(my_sum_div(1, 10, 2))
# where:
# - `intermediate_sum` will hold the value `[6, 10, 28, 36]`
# - `total_sum` will hold the value `55`
对于旧版本的Python,您需要执行以下操作:
>>> sum_list = list(my_sum_div(1, 10, 2))
>>> intermediate_sum, total_sum = sum_list[:-1], sum_list[-1]
答案 1 :(得分:1)
User.update(
{
'topics': sequelize.fn('array_append', sequelize.col('topics'), topicId),
},
{where: {uuid: id}})
输出:
def my_sum_div(a,b,div):
sum = 0
for i in range(a, b + 1):
sum += i
if sum % div == 0:
print(sum)
return sum
print(my_sum_div(1,10,2))
答案 2 :(得分:0)
这是我的实施
def my_sum(a, b):
return sum(i for i in range(a, b+1)))
def my_sum_div(a, b, div = 3):
print("sums divisible by", div,":")
l = []
s = ","
test = 0
for i in range(a, b+1):
test += i
if (test%div==0):
l.append(str(test))
print(s.join(l))
print("sum of numbers between", a, " and", b, " is", my_sum(a, b))