Mostrando entradas con la etiqueta 06 ONCE A-B. Mostrar todas las entradas
Mostrando entradas con la etiqueta 06 ONCE A-B. Mostrar todas las entradas

miércoles, 14 de octubre de 2026

TALLER DE CLASE: ESTRUCTURAS DE CONTROL EN PYTHON

 TALLER DE CLASE: ESTRUCTURAS DE CONTROL EN PYTHON


EN SUS GRUPOS DE 3 ESTUDIANTES REUNIDOS RESOLVER EL SIGUIENTE TALLER, CADA QUIEN EN SU RESPECTIVO CUADERNO, ES INDIVIDUAL AUNQUE ESTEN EN GRUPO DE 3 ESTUDIANTES.

Objetivo: Comprender y aplicar las estructuras de control if, if-else, if-elif-else, for y while mediante el análisis de ejemplos y la resolución de ejercicios.

Instrucciones: Lee el material de estudio y desarrolla las siguientes 10 preguntas en tu cuaderno. Escribe las respuestas con tus propias palabras y analiza cuidadosamente los códigos antes de responder.


Preguntas

1. ¿Qué son las estructuras de control en Python y por qué son importantes al momento de crear un programa?

2. Explica para qué sirve la estructura if. Escribe un ejemplo de una situación cotidiana en la que se pueda utilizar una condición para tomar una decisión.

3. Analiza el siguiente código y escribe qué mensaje aparecerá en pantalla. Explica por qué.

edad = 16

if edad >= 14:
    print("Puedes participar")

4. ¿Cuál es la diferencia entre las estructuras if y if-else? Escribe un ejemplo de código en el que se utilicen las dos posibilidades de una decisión.

5. Observa el siguiente código y determina qué resultado mostrará el programa. Explica tu respuesta.

nota = 2.5

if nota >= 4.5:
    print("Excelente")
elif nota >= 3:
    print("Aprobado")
else:
    print("No aprobado")

6. ¿Para qué sirve la estructura elif y en qué situaciones es conveniente utilizarla? Explica tu respuesta con un ejemplo.

7. Analiza el siguiente código. ¿Cuántas veces se imprimirá la palabra "Robótica" y qué números genera range(4)?

for i in range(4):
    print("Robótica")

8. Explica qué es un bucle while. Luego, analiza el código y escribe los números que aparecerán en pantalla.

numero = 2

while numero <= 6:
    print(numero)
    numero = numero + 1

9. Explica dos diferencias entre los bucles for y while. Escribe un ejemplo de una situación en la que utilizarías cada uno.

10. Resuelve el siguiente reto de programación: escribe un programa en Python que utilice un bucle for para mostrar los números del 1 al 10. Después, modifica el programa para que utilice un bucle while y produzca el mismo resultado.

lunes, 28 de septiembre de 2026

ESTRUCTURAS DE CONTROL

ESTRUCTURAS DE CONTROL EN PYTHON


TRANSCRIBIR EN EL CUADERNO

PROXIMA SEMANA EXAMEN ESCRITO DE LOS DOS ULTIMOS TEMAS


Las estructuras de control son instrucciones que permiten decidir qué debe hacer un programa, cuándo hacerlo y cuántas veces hacerlo.

Gracias a ellas, un programa no tiene que ejecutar todas las instrucciones de manera seguida. Puede tomar decisiones, repetir acciones o elegir diferentes caminos.

Las principales estructuras de control en Python son:

  1. Condicionales: permiten tomar decisiones.
  2. Bucles: permiten repetir instrucciones.

1. ESTRUCTURA CONDICIONAL if

La palabra if significa "si".

Se utiliza cuando queremos que Python realice una acción solamente si se cumple una condición.

Ejemplo:

edad = 15

if edad >= 14:
    print("Puedes entrar al curso")

¿Cómo funciona?

Python revisa la condición:

edad >= 14

Como 15 es mayor o igual que 14, la condición es verdadera y se ejecuta:

print("Puedes entrar al curso")

Recuerda: en Python, las instrucciones que pertenecen al if llevan una sangría o indentación.


2. ESTRUCTURA if - else

else significa "si no".

Se utiliza cuando tenemos dos posibilidades:

  • Si la condición es verdadera → ocurre una cosa.
  • Si la condición es falsa → ocurre otra.

Ejemplo:

edad = 12

if edad >= 13:
    print("Eres adolescente")
else:
    print("Eres niño")

¿Cómo funciona?

Python pregunta:

¿La edad es mayor o igual a 13?

Como 12 no cumple la condición, ejecuta el bloque else:

Eres niño

3. ESTRUCTURA if - elif - else

elif significa "si no, si...".

Se utiliza cuando tenemos más de dos posibilidades.

Ejemplo:

nota = 4

if nota >= 4.5:
    print("Excelente")
elif nota >= 3:
    print("Aprobado")
else:
    print("No aprobado")

¿Cómo funciona?

Python revisa las condiciones de arriba hacia abajo.

En este caso:

  • ¿La nota es mayor o igual a 4.5? → No.
  • ¿La nota es mayor o igual a 3? → Sí.
  • Entonces muestra:
Aprobado

4. BUCLE for

El bucle for se utiliza para repetir una acción varias veces.

Ejemplo:

for i in range(5):
    print("Hola")

¿Qué ocurre?

El programa repite print("Hola") 5 veces.

El resultado será:

Hola
Hola
Hola
Hola
Hola

range(5) genera los números:

0, 1, 2, 3, 4

Por eso se repite cinco veces.


5. BUCLE while

El bucle while significa "mientras".

Se utiliza para repetir instrucciones mientras una condición sea verdadera.

Ejemplo:

numero = 1

while numero <= 5:
    print(numero)
    numero = numero + 1

¿Cómo funciona?

Mientras numero sea menor o igual que 5, Python imprime el número y después aumenta su valor en uno.

El resultado será:

1
2
3
4
5

Cuando numero llega a 6, la condición:

numero <= 5

deja de cumplirse y el ciclo termina.


6. DIFERENCIA ENTRE FOR Y WHILE

Aunque ambos sirven para repetir instrucciones, se utilizan de manera diferente.

for

Lo utilizamos generalmente cuando sabemos cuántas veces queremos repetir algo.

for i in range(3):
    print("Hola")

Repite la acción 3 veces.

while

Lo utilizamos cuando queremos repetir algo mientras se cumpla una condición.

numero = 1

while numero <= 3:
    print(numero)
    numero = numero + 1

Repite mientras numero sea menor o igual a 3.


RESUMEN

Estructura¿Para qué sirve?
ifTomar una decisión
if - elseElegir entre dos opciones
if - elif - elseElegir entre varias opciones
forRepetir un número determinado de veces
whileRepetir mientras se cumpla una condición

Idea principal para recordar:

Las estructuras de control permiten que un programa pueda decidir y repetir acciones.

  • if → decide
  • else → hace otra cosa si no se cumple
  • elif → comprueba otra condición
  • for → repite
  • while → repite mientras se cumpla una condición

lunes, 7 de septiembre de 2026

MINI FLASK

 

CLIC AQUI PARA DESCARGAR MINI_FLASK


ATENTOS A LAS INSTRUCCIONES DEL PROFESOR:

CODIGO ADICIONADO:

TEMA: Control de Usuarios y Sesiones en Flask

En esta guía vamos a revisar el código que hemos añadido a nuestra aplicación (app.py) para lograr que cada usuario tenga su propio nombre, inicie sesión y se valide que el nombre ingresado sea correcto.


Para lograr esto, utilizamos algo llamado Sesiones (session). Una sesión es como una memoria temporal que el servidor guarda de cada usuario mientras navega por la página.


A continuación, explicamos cada bloque de código paso a paso:


1. Importar la herramienta y configurar la llave secreta

python


from flask import Flask, render_template, request, redirect, session

app = Flask(__name__)

app.secret_key = 'clave_secreta_super_segura' # Necesario para usar 'session'

¿Qué hicimos? Agregamos session a la lista de importaciones de Flask.

¿Por qué la llave secreta? Para que Flask pueda usar sesiones, necesita encriptar los datos (protegerlos para que nadie los pueda modificar). La secret_key es la contraseña maestra que usa Flask para esto. ¡En un proyecto real, esta clave no debe ser compartida!

2. La ruta de Inicio de Sesión (Login)

python


@app.route("/login", methods=["GET", "POST"])

def login():

    error = None

    if request.method == "POST":

        nombre = request.form.get("nombre")

        

        # Validar que el nombre tenga al menos 10 caracteres

        if nombre and len(nombre.strip()) >= 10:

            session['nombre'] = nombre.strip()

            return redirect("/")

        else:

            error = "El nombre debe tener al menos 10 caracteres."

    

    return render_template("login.html", error=error)

¿Cómo funciona?


Recibimos el nombre del formulario HTML a través de request.form.get("nombre").

Validación: Usamos len(nombre.strip()) >= 10. strip() borra los espacios en blanco al principio y al final para que no hagan trampa. Luego verificamos que la longitud del texto sea de 10 caracteres o más.

Guardar en la Sesión: Si la validación es exitosa, guardamos el nombre usando session['nombre'] = nombre.strip(). De esta forma, Flask recordará a este usuario.

Manejo de errores: Si el nombre es muy corto, guardamos un mensaje de error y lo enviamos al archivo login.html para que el usuario sepa qué hizo mal.

3. Proteger nuestra página principal (Index)

Ahora que tenemos un login, no queremos que cualquier persona pueda ver o enviar mensajes si no se ha registrado antes.


python


@app.route("/", methods=["GET", "POST"])

def inicio():

    # Verificar si el usuario ha iniciado sesión

    if 'nombre' not in session:

        return redirect("/login")

El portero del club: La instrucción if 'nombre' not in session: verifica si el usuario actual tiene su nombre guardado en la "memoria". Si no lo tiene, lo mandamos expulsado al /login usando redirect("/login").

4. Guardar mensajes con el nombre del usuario

Dentro de la misma ruta /, cuando el usuario envía un mensaje nuevo:


python


        # Validar que no envíen mensajes vacíos

        if texto and texto.strip() != "":

            # Usamos insert(0, ...) para agregar el mensaje al inicio de la lista

            mensajes.insert(0, {"nombre": session['nombre'], "texto": texto})

Ahora nuestros mensajes ya no son textos simples, sino Diccionarios de Python que guardan dos cosas: quién lo escribió ("nombre") y qué dijo ("texto").

En lugar de pedirle el nombre en el formulario principal, ¡lo sacamos de session['nombre']! Es más seguro y cómodo.

Al final de la ruta /, le enviamos a nuestra plantilla HTML la lista de mensajes y también el nombre del usuario conectado para saludarlo en pantalla:


python


    return render_template("index.html", mensajes=mensajes, nombre_usuario=session['nombre'])

5. Cerrar Sesión (Logout)

Por último, todo buen sistema debe permitirle al usuario salir de su cuenta.


python


@app.route("/logout")

def logout():

    session.pop('nombre', None)

    return redirect("/login")

¿Qué hace pop? Busca la clave 'nombre' dentro de la memoria de la sesión y la elimina. Una vez eliminada, el usuario es redirigido al /login y como ya no tiene su nombre guardado, no podrá entrar hasta volver a registrarse.

TIP


Resumen para recordar:


session['llave'] = valor -> Guardar un dato temporal.

session['llave'] -> Leer el dato que guardamos.

session.pop('llave', None) -> Borrar el dato de la memoria.


TEORIA

 ¿Qué son las Sesiones y por qué son Vitales?

Para entender las sesiones, primero hay que entender un problema fundamental de la web: Internet sufre de "amnesia".


El protocolo que usamos para navegar por internet (HTTP) es "sin estado" (stateless). Esto significa que cada vez que haces clic en un enlace o envías un formulario, para el servidor eres un completo desconocido. El servidor no tiene memoria de lo que hiciste hace 2 segundos.


¿El problema? Si el servidor no tiene memoria:


Inicias sesión en una página, pero al hacer clic en tu perfil, el servidor te olvida y te vuelve a pedir la contraseña.

Agregas unos zapatos a un carrito de compras, pero al ir a pagar, el carrito está vacío porque el servidor olvidó quién eres.

La Solución: Las Sesiones (session)

Una sesión es un mecanismo que le da memoria temporal al servidor sobre un usuario específico.


Funciona como un brazalete VIP en una discoteca:


Cuando el usuario inicia sesión (muestra su ID en la entrada), el servidor verifica que sea válido.

Si es válido, el servidor le da un "brazalete virtual" (una Cookie encriptada) que se guarda en el navegador web del usuario.

Cada vez que el usuario va a otra página del sitio web, su navegador muestra automáticamente el brazalete.

El servidor ve el brazalete, dice "¡Ah! Ya sé quién eres" y le deja pasar sin pedirle la contraseña de nuevo.

¿Por qué es tan importante manejar bien las Sesiones?

Identidad (Logins): Es la única forma de mantener a un usuario conectado mientras navega por diferentes páginas (como Facebook, Netflix o el correo electrónico).

Personalización: Permite recordar preferencias del usuario, como el modo oscuro, el idioma elegido o el contenido de su carrito de compras.

Seguridad (Control de Acceso): Nos permite proteger rutas. Gracias a las sesiones, podemos decirle al servidor: "Si alguien intenta entrar a la página principal y no tiene el brazalete de la sesión, échalo y envíalo al login" (exactamente lo que hicimos en nuestro código).

domingo, 23 de agosto de 2026

TEORIA GENERAL COMPLEMENTARIA PYTHON

 TEORIA GENERAL COMPLEMENTARIA PYTHON

TRANSCRIBIR EN EL CUADERNO, PREPARARSE PARA PREGUNTAS LA PROXIMA CLASE

1. ¿Qué es Flask? (Recordando)

Flask es un microframework para Python que permite crear aplicaciones web.

Un framework es un conjunto de herramientas y estructuras que facilitan el desarrollo de aplicaciones.

Flask permite que un programa escrito en Python pueda:

  • Crear páginas web.
  • Recibir información de los usuarios.
  • Procesar formularios.
  • Trabajar con bases de datos.
  • Crear sistemas de usuarios.
  • Crear aplicaciones administrativas.
  • Generar respuestas para navegadores.
  • Crear servicios y APIs.

Flask se caracteriza por ser sencillo y flexible, por lo que es apropiado para aprender cómo funciona una aplicación web desde sus fundamentos.


2. ¿Qué es app.py?

En una aplicación Flask, app.py suele ser el archivo principal de la aplicación.

Su función es coordinar el funcionamiento de la aplicación.

En términos sencillos:

app.py es el archivo que inicia la aplicación Flask, define sus rutas y determina qué debe hacer el programa cuando un usuario realiza una petición.

Por ejemplo, cuando un usuario escribe:

http://localhost:5000/

Flask recibe esa petición y busca dentro de app.py qué función está asociada a esa dirección.


3. ¿Qué es una aplicación web?

Una aplicación web funciona mediante la comunicación entre un cliente y un servidor.

El cliente normalmente es el navegador.

El servidor es el programa que recibe las solicitudes y genera las respuestas.

El proceso básico es:

NAVEGADOR
    ↓
PETICIÓN
    ↓
SERVIDOR FLASK
    ↓
PROCESAMIENTO
    ↓
RESPUESTA
    ↓
NAVEGADOR

Por ejemplo:

Un estudiante escribe en el navegador:

http://localhost:5000/

El navegador realiza una petición al servidor.

Flask recibe la petición.

Flask determina qué función debe ejecutarse.

La función procesa la información.

Finalmente Flask devuelve una respuesta al navegador.


4. ¿Qué es una petición HTTP?

Una petición HTTP es una solicitud que un navegador realiza a un servidor.

Existen diferentes métodos HTTP, pero los dos más importantes para comenzar son:

GET

Se utiliza principalmente para solicitar o consultar información.

Por ejemplo:

GET /usuarios

Significa:

"Quiero obtener la página o información correspondiente a usuarios."

POST

Se utiliza principalmente para enviar información al servidor.

Por ejemplo, cuando un usuario llena un formulario de registro:

POST /registro

El navegador envía los datos al servidor para que Python pueda procesarlos.


5. ¿Qué es una ruta?

Una ruta, o route, es la relación entre una dirección URL y una función de Python.

Por ejemplo:

@app.route("/")
def inicio():
    return "Hola mundo"

La expresión:

@app.route("/")

indica que la función inicio() responderá cuando alguien solicite:

/

Por lo tanto:

URL
 ↓
/
 ↓
ruta Flask
 ↓
función Python
 ↓
respuesta

Una aplicación puede tener muchas rutas.

Por ejemplo:

/              → página principal
/login         → inicio de sesión
/usuarios      → usuarios
/contacto      → contacto
/admin         → administración

6. ¿Qué es una función en Flask?

Una función es un bloque de código Python que realiza una determinada tarea.

Por ejemplo:

def saludo():
    return "Hola"

En Flask, una función puede estar asociada a una ruta:

@app.route("/saludo")
def saludo():
    return "Hola"

Cuando alguien visita:

/saludo

Flask ejecuta:

saludo()

y devuelve el resultado.


miércoles, 29 de julio de 2026

CONTINUACION CONCEPTOS PYTHON - FLASK

 CONTINUACION CONCEPTOS FUNDAMENTALES EN PYTHON

LAS CONSTANTES

¿Qué es una constante?

Una constante es un dato que no debería cambiar durante el programa.

Python no tiene constantes verdaderas como otros lenguajes.

Por convenio se escriben con letras MAYÚSCULAS.

Ejemplo

PI = 3.1416

IVA = 19

MAX_ESTUDIANTES = 40

Aunque Python permite cambiar el valor:

IVA = 20

No se recomienda hacerlo.


Diferencia entre variable y constante

Variable

Constante

Su valor puede cambiar.

Su valor no debería cambiar.

Se escribe normalmente en minúsculas.

Se escribe en MAYÚSCULAS.

Se usa para almacenar datos del programa.

Se usa para valores fijos.


Comentarios

Los comentarios sirven para explicar el código.

Python los ignora.

Ejemplo

# Esta variable guarda el nombre del estudiante

nombre = "Carlos"


Operadores matemáticos

Operador

Significado

+

Suma

-

Resta

*

Multiplicación

/

División

//

División entera

%

Residuo

**

Potencia


Concatenación

Consiste en unir textos.

nombre = "Ana"

apellido = "Gómez"

print(nombre + " " + apellido)

Resultado

Ana Gómez


Variables dentro de Flask

En Flask también utilizamos variables.

Ejemplo

from flask import Flask

app = Flask(__name__)

@app.route("/")

def inicio():

    mensaje = "Bienvenidos al curso de Flask"

    return mensaje

app.run()

La variable mensaje guarda el texto que será enviado al navegador.


Variables enviadas a una página HTML

En Flask podemos enviar variables al archivo HTML.

from flask import Flask, render_template

app = Flask(__name__)

@app.route("/")

def inicio():

    nombre = "Carlos"

    return render_template("index.html", nombre=nombre)

app.run()

En el archivo index.html

<h1>{{ nombre }}</h1>

El navegador mostrará

Carlos


Variables Globales

Son variables que pueden ser utilizadas por varias funciones.

Ejemplo

colegio = "Colegio Trinitario"

@app.route("/")

def inicio():

    return colegio


Variables Locales

Solo existen dentro de una función.

@app.route("/")

def inicio():

    saludo = "Hola"

    return saludo

La variable saludo solamente existe dentro de la función inicio().

lunes, 1 de junio de 2026

MI PRIMERA APP EN PYTHON CON FLASK

 

Mini Proyecto: “Muro de Mensajes del Curso”

Los estudiantes crean una pequeña App de red social tipo página web donde cualquier usuario puede escribir un mensaje y este aparece publicado en pantalla.

Estructura del proyecto

mini_flask/
│
├── venv/ ← Entorno virtual (se crea automáticamente), espere instrucciones…
│
├── app.py ← Programa principal Flask, es el programa servidor
│
├── requirements.txt ← Dependencias del proyecto
│
├── static/ ← Archivos estáticos
│ │
│ └── estilos.css
│
├── templates/ ← Plantillas HTML
│ │
│ └── index.html ←paginas clientes que se conectan al servidor de Flask (app.py)
│
└── README.md ← (Opcional) descripción del proyecto

 

1.      EN SU USB CREE UNA CARPETA CON EL NOMBRE DE: mini_flask

2.      HAGA CLIC DERECHO SOBRE DICHA CARPETA Y HAGA CLIC EN: Abrir con Code

3.      ACTIVE LA TERMINAL DE VSCODE – Atentos a las explicaciones del profesor

4.      CREACION Y ACTIVACION DEL ENTORNO VIRTUAL – Siga las indicaciones del profesor

A.      Crear el entorno virtual con alguno de los siguientes comandos: py -3.8 -m venv venv   /  python -m venv venv

B.      Activacion del entorno:  venv\Scripts\activate

C.      Debe aparecerle en la terminal algo parecido a: (venv) C:\mini_flask>

5.      Instalar Flask

En la terminal escriba y haga ENTER: pip install Flask

Verifique que ha quedado instalado: pip show Flask

6.      INSTALANDO LAS PLANTILLAS JINJA2

En la terminal escribo y hago ENTER: pip install Jinja2==3.1.6

Verifico que han quedado instaladas: pip show Jinja2

7.      CONSULTANDO QUE LIBRERIAS TENGO INSTALADAS ESCRIBES: pip list  Presionas ENTER

 

CODIFICACION Y CREACION DE ARCHIVOS

Atentos a las explicaciones del profesor…

1.      CREANDO EL SERVIDOR

Código principal (app.py) programa servidor

EN EL DIRECTORIO PRINCIPAL (mini_flask) PROCEDA A CREAR EL ARCHIVO: app.py COPIE Y PEGUE EN ESE ARCHIVO EL SIGUIENTE CODIGO, Atentos a las explicaciones

from flask import Flask, render_template, request, redirect

app = Flask(__name__)

mensajes = []

@app.route("/", methods=["GET", "POST"])
def inicio():

    if request.method == "POST":
        texto = request.form["mensaje"]

        if texto != "":
            mensajes.append(texto)

        return redirect("/")

    return render_template("index.html", mensajes=mensajes)

if __name__ == "__main__":
    app.run(debug=True)

 

TAREA EN CLASE

INVESTIGAR LOS METODOS POST Y GET EN HTML Y EN FLASK

 

2.      CREANDO LA HOJA DE ESTILO (CSS)

EN LA RUTA “static” CREAMOS EL ARCHIVO: estilos.css  COPIAMOS EL SIGUIENTE CODIGO EN DICHO ARCHIVO

body {
    font-family: Arial, sans-serif;
    width: 80%;
    margin: auto;
}

h1 {
    color: navy;
}
input {     padding: 8px; }
button {     padding: 8px;     cursor: pointer; }
.mensaje {     background-color: #f0f0f0;     padding: 10px;     margin-top: 5px;     border-radius: 5px; }

 

3.      CREANDO EL CLIENTE

EN LA CARPETA “templates” CREAMOS EL ARCHIVO: index.html COPIAMOS DENTRO DE ESE ARCHIVO EL SIGUIENTE CODIGO:

<!DOCTYPE html>
<html>
<head>
<title>Chat del Salón</title>
<link rel="stylesheet" href="{{ url_for('static', filename='estilos.css') }}">
</head> <body>
    <h1>Muro del Curso</h1>
    <form method="POST">
        <input type="text" name="mensaje" placeholder="Escribe algo">
        <button type="submit">             Enviar         </button>
    </form>     <hr>     <h2>Mensajes:</h2>
    {% for mensaje in mensajes %}         <p>- {{ mensaje }}</p>     {% endfor %}
</body> </html>

 

4.      EJECUCION DEL APP

PARA EJECUTAR LA APP DEBE IR A LA TERMINAL Y ESCRIBIR LOS SIGUIENTES COMANDOS:

Escriba:
venv\Scripts\activate ENTER espere unos segundos a que aparezcan algunos msgs


Escriba:
python app.py ENTER, APARECERA UNA DIRECCION IP POR DEFECTO, LA DE SU
COMPUTADOR:
http://127.0.0.1:5000 

DEBE PROCEDER DE LA SIGUIENTE FORMA: MANTENGA PERSIONADA LA TECLA :
CTRL (LA DEL LADO IZQUIERDO DEL TECLADO), Y SIN SOLTAR ESA TECLA ENTONCES
HAGA CLIC SOBRE LA DIRECCON IP (
http://127.0.0.1:5000).
 
SE ABRIRA SU NAVEGADOR CON LA APP DESPLEGADA.
 
 
INVESTIGAR LOS SIGUIENTES CONCEPTOS:

·         QUE ES UN DECORADOR EN PYTHON (FLASK)

·         QUE ES FRONTED

·         QUE ES BACKEND

·         PARA QUE SIRVE: redirect("/") EN FLASK

·         QUE HACE render_template("index.html") EN FLASK

·         PARA QUE SIRVE: app.run(host="0.0.0.0") EN FLASK

TALLER DE CLASE: ESTRUCTURAS DE CONTROL EN PYTHON

 TALLER DE CLASE: ESTRUCTURAS DE CONTROL EN PYTHON EN SUS GRUPOS DE 3 ESTUDIANTES REUNIDOS RESOLVER EL SIGUIENTE TALLER, CADA QUIEN EN SU RE...