Suma y el ejemplo División (Python)
Pregunta
>>> 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
>>>
¿Cómo automatizar esta suma y división usando un bucle tal vez?
Edit: Tal vez yo no estaba clara - Quiero un bucle para seguir haciendo la suma (de múltiplos de 7, por ejemplo, 1-7, 1-14, 1-21, etc ..) hasta que alcanza x (x es la entrada del usuario)
De acuerdo, lo descubrió:
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)
Solución
def sumdiv7(limit):
for i in range(limit):
result = sum(range(i*7)) / 7
print "For", i, ", sumdiv = ", result
Ejemplo:
>>> sumdiv7(4)
For 0 , sumdiv = 0
For 1 , sumdiv = 3
For 2 , sumdiv = 13
For 3 , sumdiv = 30
El truco es muy simple, desea sumar múltiplos de 7,
Para obtener el múltiplo de orden i del 7, es sólo i*7
range
es una función de Python para obtener una lista de números del 0 al x
sum
resume una lista.
Sólo hay que poner estas piezas juntas
Otros consejos
La respuesta directa:
def sum_to_number_divided_by_seven(i):
return sum(range(i+1)) / 7
La respuesta más eficiente:
def sum_to_number_divided_by_seven(i):
return (i*(i+1))/14
No estoy seguro de lo que quiere, pero quizás es algo como:
sum(range(x*7+1))/7
Mi versión:
def sum_of_nums_divided_by_7(num):
return reduce(lambda x, y: x+y, range(num)) / 7
Si entiendo su problema correctamente. ¿Quieres ser capaz de aceptar la entrada del usuario - x, y luego suma los valores de 1-7 luego devide por 7, si el qoutient es mayor que x parada allí, de lo contrario seguirá resumir 1-14, devide por 7 y comprobar que el cociente -? y continute en múltiplos de 7
Mi sollution fácil es
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)