Curso de introducción a la programación con Python¶

    Autor: Luis Fernando Apáez Álvarez
    -Curso PyM-
    Práctica 2: Bucles
    Fecha: 09 de Agosto del 2022
    SOLUCIÓN


Descripción: En esta práctica programaremos cierto tipo de sumas, las cuales están asociadas a la notación sigma (Más sobre notación sigma)

Además, utilizaremos el bucle for para crear tablas de multiplicar.

(Tiempo estimado: 15 minutos)


Teoría: Existe una alternativa para representar sumas consecutivas. Por ejemplo, en vez de escribir $$ 1+2+3+4+5+6+\cdots+100 $$ podemos hacerlo de una manera compacta como sigue: \begin{equation} \Sigma^{100}_{1}i=1+2+3+4+5+6+\cdots+100 \end{equation}

donde la variable $i$ de la suma tomará los valores consecutivos del 1 al 100. En este sentido tenemos que \begin{equation} \Sigma^{\textrm{Límite superior}}_{\textrm{Límite inferior}}i \end{equation}

de tal manera, la $i$ toma los valores 1,2,3, etcétera, hasta llegar a tomar el valor de 100. Otro ejemplo es el siguiente:

\begin{equation} \Sigma^{100}_{1}i^{2}=1+4+9+16+25+36+\cdots+10000 \end{equation}

donde, recordemos que la $i$ toma los valores consecutivos del 1 al 100, por lo cual, $\sum^{100}_{1}i^{2}$ representa la suma:

$$ (1)^{2}+(2)^{2}+(3)^{2}+\cdots+(100)^{2} $$

Así, podemos implementar sumas utilizando la notación sigma en Python como sigue:

Calcularemos primero la suma de $\Sigma^{100}_{1}i$

Solución:

In [1]:
# Declaramos dos variables:
# La variable i de la suma, la inicializamos en 0
i = 0

# una variable para almacenar el valor de la suma
# la inicializamos en 0
suma = 0
In [2]:
# Implementamos el while, recuerda que la i de la suma
# va del limite inferior (por ejemplo 0) al superior (por ejemplo 100)
# Completa
while i >= 0 and i <= 100:
    # a la variable suma le iremos sumando los valores que tome la i
    suma += i
    # aumentamos en 1 el valor de la i para que le bucle no sea infinito
    i += 1
# Vemos el valor final de la suma
print(suma)
5050

Lo que sigue ahora es calcular el valor de la suma $ \Sigma^{100}_{0}i^{2}$, para lo cual

In [3]:
# Declaramos dos variables:
# La variable i de la suma, la inicializamos en 0
i = 0 

# una variable para almacenar el valor de la suma
# la inicializamos en 0
suma = 0 

# Implementamos el while, recuerda que la i de la suma
# va del limite inferior (por ejemplo 0) al superior (por ejemplo 100)
# Completa
while i >= 0 and i <= 100 :
    # a la variable suma le iremos sumando los valores que se generen
    # de calcular i ** 2
    suma += i ** 2
    # aumentamos en 1 el valor de la i para que le bucle no sea infinito
    i += 1
# Vemos el valor final de la suma
print(suma)
338350

Ahora, lo que haremos será calcular todas las tablas de multiplicar del 1 al 10 de manere simultánea. Recordemos que en la clase vimos el siguiente código

In [4]:
print("Ingrese un número del cual desea conocer \
su tabla de multiplicar")

# entrada del usuario
num = int(input())
print("-" * 20)

# range(1,11): 1,2,3,...,10
for i in range(1,11):
    # cambiamos el numero fijo por la i
    print(f"{num} x {i} = {num * i}")
Ingrese un número del cual desea conocer su tabla de multiplicar
7
--------------------
7 x 1 = 7
7 x 2 = 14
7 x 3 = 21
7 x 4 = 28
7 x 5 = 35
7 x 6 = 42
7 x 7 = 49
7 x 8 = 56
7 x 9 = 63
7 x 10 = 70

ahora, lo que haremos será implementar un bucle for dentro de otro bucle for, algo así como

In [5]:
# i sera el nombre de la variable del primer for
for i in range(3):
    # j es el nombre de la variable del segundo for
    for j in range(4):
        print(f"{i} --> {j}")
0 --> 0
0 --> 1
0 --> 2
0 --> 3
1 --> 0
1 --> 1
1 --> 2
1 --> 3
2 --> 0
2 --> 1
2 --> 2
2 --> 3

con lo cual podremos calcular todas las tablas de multiplicar del 1 al 10, para ello:

In [6]:
# i sera el nombre de la variable del primer for
# range(1,11) genera: 1,2,3,4,5,6,7,8,9,10

for i in range(1,11):

    # j es el nombre de la variable del segundo for
    for j in range(1,11):

      # Calculamos las tablas de multiplicar
      # Completa
      print(f"{i} x {j} = {i * j}")

    print("-" * 25)
1 x 1 = 1
1 x 2 = 2
1 x 3 = 3
1 x 4 = 4
1 x 5 = 5
1 x 6 = 6
1 x 7 = 7
1 x 8 = 8
1 x 9 = 9
1 x 10 = 10
-------------------------
2 x 1 = 2
2 x 2 = 4
2 x 3 = 6
2 x 4 = 8
2 x 5 = 10
2 x 6 = 12
2 x 7 = 14
2 x 8 = 16
2 x 9 = 18
2 x 10 = 20
-------------------------
3 x 1 = 3
3 x 2 = 6
3 x 3 = 9
3 x 4 = 12
3 x 5 = 15
3 x 6 = 18
3 x 7 = 21
3 x 8 = 24
3 x 9 = 27
3 x 10 = 30
-------------------------
4 x 1 = 4
4 x 2 = 8
4 x 3 = 12
4 x 4 = 16
4 x 5 = 20
4 x 6 = 24
4 x 7 = 28
4 x 8 = 32
4 x 9 = 36
4 x 10 = 40
-------------------------
5 x 1 = 5
5 x 2 = 10
5 x 3 = 15
5 x 4 = 20
5 x 5 = 25
5 x 6 = 30
5 x 7 = 35
5 x 8 = 40
5 x 9 = 45
5 x 10 = 50
-------------------------
6 x 1 = 6
6 x 2 = 12
6 x 3 = 18
6 x 4 = 24
6 x 5 = 30
6 x 6 = 36
6 x 7 = 42
6 x 8 = 48
6 x 9 = 54
6 x 10 = 60
-------------------------
7 x 1 = 7
7 x 2 = 14
7 x 3 = 21
7 x 4 = 28
7 x 5 = 35
7 x 6 = 42
7 x 7 = 49
7 x 8 = 56
7 x 9 = 63
7 x 10 = 70
-------------------------
8 x 1 = 8
8 x 2 = 16
8 x 3 = 24
8 x 4 = 32
8 x 5 = 40
8 x 6 = 48
8 x 7 = 56
8 x 8 = 64
8 x 9 = 72
8 x 10 = 80
-------------------------
9 x 1 = 9
9 x 2 = 18
9 x 3 = 27
9 x 4 = 36
9 x 5 = 45
9 x 6 = 54
9 x 7 = 63
9 x 8 = 72
9 x 9 = 81
9 x 10 = 90
-------------------------
10 x 1 = 10
10 x 2 = 20
10 x 3 = 30
10 x 4 = 40
10 x 5 = 50
10 x 6 = 60
10 x 7 = 70
10 x 8 = 80
10 x 9 = 90
10 x 10 = 100
-------------------------