Reto: Series
Listar los números entre un valor inicial y uno final, con un cierto intervalo. Al final dar la suma de todos los valores listados.
Método 1
Establecemos tres valores concretos para las variablesinicial
, final
e intervalo
. Con el objeto de llegar a calcular la suma total creamos la variable total
que inicializamos a cero. Nos metemos en un bucle for
para recorrer con range
todos los valores del rango usando el intervalo establecido. El objeto range
nos permite recorrer un rango comenzando por el inicio, pero no llegando nunca al final exactamente. Observe que en la imagen no aparece listado el final que es 20.La variable
total
actúa como acumulador sumando en cada vuelta del bucle el valor que tome la variable i
en ese momento. Finalmente, y fuera del bucle imprimimos el valor de la variable total
.inicial=10
final=20
intervalo=2
total=0 #inicializamos la suma a cero
for i in range(inicial,final,intervalo):
total+=i #la variable total actúa de acumulador
print(i)
print('La suma es:',total)
Método 2
Generamos valores aleatorios para las variableinicial
, final
e intervalo
. Imprimimos por pantalla los valores obtenidos. Creamos la variable i
que luego usaremos en el bucle while
y la inicializamos con el valor inicial
. Creamos la lista L
y la inicializamos como una lista vacía. La variable total
inicialmente valdrá cero. Nos metemos en un bucle while
que durará mientras la variable i
sea menor que el valor final. Con append
vamos añadiendo a la lista L
los valores del intervalo dados por la variable i
. Dentro del bucle while
incrementamos el valor de la variable i
con el importe del intervalo. Acumulamos los valores obtenidos en la variable total
. Fuera del bucle imprimimos la lista L
y mostramos el importe de la suma.import random
random.seed() #barajamos la serie de números aleatorios
inicial=random.randint(100,130)
final=inicial+random.randint(10,20)
intervalo=random.randint(2,5)
print('inicial=',inicial)
print('final=',final)
print('intervalo=',intervalo)
i=inicial
L=[] #inicializamos L como una lista vacía
total=0 #inicializamos la suma a cero
while i<final:
L.append(i) #añadimos el valor i a la lista L
i+=intervalo #aumentamos el valor del contador
total+=i
print(L) #imprimimos la lista
print('La suma es:',total)
Método 3
total=0
for x in range(1, 26):
if x%5==0:
total+=x #acumulador
print(x)
print("El total es: ",total)
Queda un método más y es todavía más simple:
ResponderEliminartotal = 0
for x in range(1, 26):
----if x % 5 == 0:
--------total += x #acumulador
--------print(x)
print("El total es: ", total)
De hecho se le pueden agregar números aleatorios con import random e incluso un input para que el usuario digite su propio rango con int(input("").
Espero que haya sido de ayuda, gracias por enseñar y seguir haciendo contenido.
Hola SynthBass.
EliminarMe ha encantado tu método, es super-elegante. Con tu permiso, lo incorporará al post.
Como bien dices la idea es aprender entre todos. Muchas gracias.
Si tienes algún otro aporte al blog será magnífico que puedas compartirlo.
Un cordial saludo.
#lista
ResponderEliminarx=list(range(0,10,3))
print(x)
print(sum(x))
#Listar los números entre un valor inicial y uno final, con un cierto intervalo.
ResponderEliminar# Al final dar la suma de todos los valores listados.
def run():
inicial = int(input("Digite valor inicial: "))
final = int(input("DIgite valor final: "))
intervalo = int(input("Digite el intervalo: "))
suma = 0
for i in range(inicial,final+1,intervalo):
suma = suma + i
print(i, end=" ")
print("la suma es: ",suma)
run()