domingo, 1 de julio de 2018

Bucles anidados

Reto: Bucles anidados

Generar la tabla de multiplicar.




Método 1

Usamos dos bucles for anidados, de esta forma para cada valor de la variable i se recorren todos los valores de la variable i. Si cada una de las variables se mueve entre 1 y 10, al estar anidados los dos bucles nos proporcionaran 100 valores que son los necesarios para mostrar las tablas de multiplicar del 1 al 10.

for i in range(1,11):
  for j in range (1,11):
    x=i*j
    print(i,'*',j,'=',x)
    if j == 10:
      print("_"*40)


Método 2

Con este método mostramos una forma peculiar que tiene Python a la hora de imprimir valores.

for i in range(1,11):
  for j in range(1,11):
    print ('%d * %d = %d' % (i,j,i*j))
    if j == 10:
      print("_"*40)


Método 3

También podemos hacer las tablas de multiplicar en forma de tabla de doble entrada. Hemos creado la variable n que nos proporciona el número de espacios en blando que anteceden a cada número para que la tabla quede con columnas correctamente alineadas.
La variable texto recoge los valores de cada fila. Cada uno de los números ocupa 5 caracteres:
  1. Los números de una cifra llevan 4 espacios en blanco y luego la cifra numérica. Ejemplo: '    1'.
  2. Los números de dos cifras llevan 3 espacios en blanco y luego la cifra numérica. Ejemplo: '   10'
  3. El 100 que es el único número de 3 cifras, va precedido por dos espacios en blanco: '  100'
Con este sistema todos los números que se representan en la tabla ocupan el mismo número de dígitos (5) y de esta forma la tabla queda bien ordenada estéticamente en forma de columnas todas ellas del mismo ancho.


for i in range(1,11):
  texto=''
  for j in range(1,11):
    n=5-len(str(i*j))
    texto+=' '*n+str(i*j)
  print(texto)

1 comentario:

  1. print([[i*n for i in range(1,11)] for n in range(1,11)])

    ResponderEliminar