2
>>> sum((1, 2, 3, 4, 5, 6, 7))
28
>>> 28/7
4.0
>>> sum((1,2,3,4,5,6,7,8,9,10,11,12,13,14))
105
>>> 105/7
15.0
>>>

我如何使用循环自动化这个和和除法?

编辑:也许我不清楚 - 我想要一个循环继续做总和(7的倍数,例如1-7、1-14、1-21等)直到它达到x(x是用户输入)

好吧,想通了:

def sum_and_div_of_multiples_of_7(x):
  y = 7
  while (y <= x):
    mof7 = range(1,y)
    print ('mof7 is', mof7)

    total = sum(mof7)
    print ('total =', total)

    div = total/7
    print ('div =', int(div), '\n')

    y = y+7     # increase y

x = 70
sum_and_div_of_multiples_of_7(x)
4

5 回答 5

5

直接回答:

def sum_to_number_divided_by_seven(i):
  return sum(range(i+1)) / 7

更有效的答案:

def sum_to_number_divided_by_seven(i):
  return (i*(i+1))/14
于 2009-11-17T07:20:16.543 回答
1
def sumdiv7(limit):
    for i in range(limit):
        result = sum(range(i*7)) / 7
        print "For", i, ", sumdiv = ", result

例子:

>>> sumdiv7(4)
For 0 , sumdiv =  0
For 1 , sumdiv =  3
For 2 , sumdiv =  13
For 3 , sumdiv =  30

诀窍很简单,你想把 7 的倍数相加,

要获得 7 的第 i 个倍数,只需i*7

range是一个python函数,用于获取从0到的数字列表x

sum总结一个列表。

把这些碎片放在一起

于 2009-11-17T08:11:06.203 回答
0

我不确定你想要什么,但也许是这样的:

sum(range(x*7+1))/7
于 2009-11-17T07:25:29.047 回答
0

我的版本:

def sum_of_nums_divided_by_7(num):
    return reduce(lambda x, y: x+y, range(num)) / 7
于 2009-11-17T07:57:26.110 回答
0

如果我正确理解您的问题。您希望能够接受用户输入 - x,然后将值 1-7 相加,然后除以 7,如果 qoutient 高于 x 就停在那里,否则继续总结 1-14,除以 7 并检查该商- 并以 7 的倍数继续?

我的简单解决方案是

x = input('user input - enter your value here')
y = 0
i = 1
while(x > y):
    q = sum(range(1, i*7+1))
    y = q/7
    print y
    i+=1

print "userinput:  %d" % (x)
print "iterations:  %d" %(i)
print "end value: %d" %(y)
于 2009-11-17T08:09:51.073 回答