求和与除法示例(Python)
>>> 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)
5 个回答
0
如果我理解你的问题没错的话,你想要接受用户输入的一个数字x,然后先把1到7的数字加起来,再除以7。如果这个结果大于x,就停下来;如果不大于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)
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
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的倍数的和。
要得到第i个7的倍数,只需要用 i*7
就可以了。
range
是一个Python函数,用来生成从0到 x
的数字列表。
sum
用来计算一个列表的总和。
只需要把这些部分组合在一起就行了。