Reto: Acumulado
Listar los números entre 1 y 10. En la columna contigua sus cuadrados, y en la tercera columna sus cubos. Al final dar la suma de todos los valores de cada columna.
Método 1
Inicializamos con el valor cero las tres variables que recogerán la suma de cada columna. Nos metemos en un bluclefor
que toma los valores 1 a 10. Acumulamos los valores de cada una de las tres variables s1
, s2
y s3
. Dentro del bucle imprimimos los valores de cada fila que son i
, su cuadrado y su cubo. Finalmente, y fuera del bucle, imprimimos el valor de los acumulados.s1=0
s2=0
s3=0
for i in range(1,11):
s1=s1+i
s2=s2+i**2
s3=s3+i**3
print(i,i**2,i**3)
print('_'*11)
print(s1,s2,s3)
Método 2
Inicializamos en cero los valores de las tres variables que acumularans1
, s2
y s3
. Nos metemos en un bucle for
donde tenemos la variable i
para recorrer los números 1 a 10, la variable j
contendrá sus cuadrados y la variable k
sus cubos. Acumulamos usando s1+=i
que equivale a s1=s1+i
. Imprimimos, dentro del bucle, los valores i
, j
, k
que constituyen las tres columnas. Finalmente, fuera del bucle, imprimimos los acumulados.s1=s2=s3=0
for i in range(1,11):
j=pow(i,2)
k=pow(i,3)
s1+=i
s2+=j
s3+=k
print(i,j,k)
print('_'*11)
print(s1,s2,s3)
Método 3
Otra forma de acumular en Python es trabajar con listas y luego sumar todos sus elementos consum
.a=list()
b=list()
c=list()
for i in range(1,11):
j=pow(i,2)
k=pow(i,3)
a.append(i)
b.append(j)
c.append(k)
print(i,j,k)
print('_'*11)
print(sum(a),sum(b),sum(c))
Método 4
El código está basado en el mostrado en el método 2. Aquí lo que hemos modificado es el formato con el que se muestran los datos en pantalla. Hemos actuado sobre dos tipos de formatos:- sobre la alineación derecha y el número de caracteres, por ejemplo {:>3}
- para mostrar separador de miles (con coma, como los ingleses) a cero decimales {,.0f}
s1=s2=s3=0
for i in range(1,11):
j=pow(i,2)
k=pow(i,3)
s1+=i
s2+=j
s3+=k
print('{:>3} {:>4} {:>6,.0f}'.format(i,j,k))
print('{:>3} {:>4} {:>6}'.format('_'*3,'_'*4,'_'*5))
print('{:>3} {:>4} {:>6,.0f}'.format(s1,s2,s3))
numeros=[]
ResponderEliminarcuadrados=[]
cubos=[]
for x in range(1,11):
numeros.append(x)
for i in numeros:
cuadrados.append(i**2)
for j in numeros:
cubos.append(j**3)
for i,j,k in zip(numeros,cuadrados,cubos):
print(i,' ',j,' ',k)