A02: Control de flujo (bucles)¶
En esta actividad, se aprender a usar bucles los cuales permiten ejecutar una sección de código (un número finito o infinito de veces) mientras se cumpla alguna condición. Desarrolle las siguientes tareas:
TAREA 01: Bucle while() 1¶
Lea el siguiente texto:
¿Qué es el bucle while()?
Un bloque de código se puede ejecutar repetidamente usando una sentencia
while. El código de una cláusula while se ejecutará siempre que la condición de la sentenciawhilesea verdadera.Una sentencia while siempre consta de lo siguiente:
La palabra clave while
Una condición (es decir, una expresión que evalúa como verdadera o falsa)
Dos puntos (:)
A partir de la siguiente línea, un bloque de código con sangría (denominado cláusula while)
Ejemplo:
1cantidadManzanas = 0 2 3print(f"cantidad de Manzanas en canasta = {cantidadManzanas}") 4 5while(cantidadManzanas < 12): 6 print("depositando una Manzana a la canasta...") 7 cantidadManzanas = cantidadManzanas + 1 8 print(f"cantidad de Manzanas en canasta = {cantidadManzanas}") 9 10print(f"Ahora tiene en su canasta {cantidadManzanas} manzanas")
Acorde al texto anterior: ¿QUÉ ES LA DECLARACIÓN WHILE?, en su cuaderno responda:
¿Para qué sirve la declaración while?
¿De qué se compone la declaración while?
Una declaración while que se ejecute infinitamente, ¿Puede ser vista como un error en el código?
Cree un archivo de nombre: A02T01-password.py y escriba el siguiente código (no olvide escribir los comentarios iniciales):
1passwordSistema = input("Cree una contraseña de Sistema: ") 2contadorIntentos = 0 3passwordUsuario = "" 4 5while(passwordSistema != passwordUsuario): 6 passwordUsuario = input("Ingrese la contraseña de Sistema: ") 7 contadorIntentos = contadorIntentos + 1 8 9print(f"Contraseña correcta despues de {contadorIntentos} intentos")
EJECUTE el código A02T01-password.py y en su cuaderno responda:
¿De que trata el código?
¿Que pasa en la consola si nunca se ingresa la contraseña de sistema?
¿Que pasa en la consola si al momento de crear la contraseña de sistema, no se escribe nada?
MODIFIQUE el código A02T01-password.py de tal forma que cumpla las siguientes características:
El usuario solo tiene 10 intentos para escribir la contraseña correcta.
El usuario debe saber cuantos intentos le quedan para escribir la contraseña correcta.
Cada vez que el usuario escriba una contraseña incorrecta, se resta un intento.
Si los intentos del usuario llegaron a cero, entonces mostrar un mensaje que diga: “se acabaron los intentos”.
Finalmente, si la contraseña es correcta, mostrar un mensaje que diga: “contraseña correcta después de (contar los intentos) intentos…». Por otra parte si la contraseña es incorrecta, entonces mostrar un mensaje que diga: “contraseña incorrecta”.
TAREA 02: Triangulo 1¶
CREE un programa de nombre: A02T02-triangulo.py el cual dibuje por medio de asteriscos (*) la siguiente figura:
1* 2** 3*** 4**** 5***** 6****** 7*******
El programa debe tener la siguientes características:
El programa le debe preguntar al usuario el número límite de asteriscos.
El número límite de asteriscos debe ser la base del triangulo.
Establecer una variable inicial que contenga solo un asterisco (*). El nombre de esta variable puede ser: numeroAsteriscosInicial
Por medio de una declaración
while, escribir una condición que cumpla lo siguiente:“Mientras el número de asteriscos inicial sea menor o igual que el numero de asteriscos límite, entonces imprimir en consola el numero de asteriscos».
Cada vez que que se ejecute la declaración while, sumarle una unidad al valor de la variable numeroAsteriscosInicial
GUARDE los cambios y CIERRE el archivo.
TAREA 03: Declaraciones break y continue 1¶
Lea el siguiente texto:
¿Qué son las declaraciones break, continue y en qué se diferencian?
breakes un atajo para lograr que la ejecución del programa salga de un buclewhileantes de tiempo. Si la ejecución llega a una sentenciabreak, sale inmediatamente de la cláusula del buclewhile.continuese utiliza dentro de bucles. Cuando la ejecución del programa llega a una sentenciacontinue, regresa inmediatamente al inicio del bucle y reevalúa su condición. (Esto también ocurre cuando la ejecución llega al final del bucle).
Ejemplo:
1contador01 = 0 2contador02 = 0 3 4print("-------------------------") 5print("CONTADOR 01 con break") 6 7while(contador01 < 10): 8 contador01 = contador01 + 1 9 if(contador01 == 5): 10 break 11 print(contador01) 12 13print("-------------------------") 14print("CONTADOR 02 con continue") 15 16while(contador02 < 10): 17 contador02 = contador02 + 1 18 if(contador02 == 5): 19 continue 20 print(contador02)
Acorde al texto anterior: ¿Qué son las declaraciones break, continue y en qué se diferencian?, en su cuaderno responda las siguientes preguntas:
¿Para qué sirve la declaración break?
¿Para qué sirve la declaración continue?
¿En qué se diferencian las declaraciones break y continue?
CREE un archivo de nombre: A02T03-usuarioPassword.py y escriba el siguiente código (no olvide escribir los comentarios iniciales):
1usuarioRegistrado = input("Cree un nombre de usuario: ") 2passwordRegistrada = input("Cree una password: ") 3 4print("ENTRANDO AL SISTEMA >>>") 5 6while(True): 7 usuario = input("Ingrese su usuario: ") 8 if(usuarioRegistrado != usuario): 9 print("usuario incorrecto") 10 continue 11 else: 12 print(f"Bienvenido {usuarioRegistrado}!!!") 13 password = input("Ingrese su password: ") 14 if(passwordRegistrada == password): 15 print("BIENVENIDO") 16 break 17 else: 18 print("password incorrecta") 19 20print("adios")
EJECUTE el código: A02T03-usuarioPassword.py y en su cuaderno responda:
¿De que trata el código?
¿Qué pasa si al momento de ingresar un nombre de usuario (previamente registrado) no se ingresa el nombre del usuario correcto?
¿Qué pasa si al momento de ingresar la password del usuario (previamente registrada) no se ingresa la password correcta?
¿De que otra forma se puede interrumpir el bucle while?
MODIFIQUE el código A02T03-usuarioPassword.py de tal forma que cumpla las siguientes características:
Agregue otra variable inicial de nombre: codigoBinarioRegistrado. En esta variable almacene un código binario de 4 bits.
Cree otra condición que verifique que el código binario ingresado por el usuario coincide con el código binario registrado.
Para darle la bienvenida al usuario, tienen que coincidir el nombre del usuario, la password y también el código binario.
TAREA 04: Password02 1¶
CREE un programa de nombre: A02T04-password02.py que registre una contraseña inicial de sistema. Luego solicitarla nuevamente y si coincide, mostrar un mensaje que diga: BIENVENIDO. Igualmente mostrar el número de intentos antes de haber ingresado la contraseña correcta.
El programa debe tener las siguientes características:
Declarar inicialmente dos variables. Una para ingresar la contraseña de sistema y otra para establecer un contador en ceros.
El ciclo while debe establecerse inicialmente en infinito.
Cada vez que el usuario ingrese una contraseña incorrecta, entonces el contador debe sumar una unidad.
Si la contraseña es correcta, romper el bucle while con una sentencia
break. Mostrar el número de intentos antes escribir la contraseña correcta así como también un mensaje que diga: “BIENVENIDO”Si la contraseña no es correcta, mostrar un mensaje que diga: contraseña incorrecta.
GUARDE los cambios y cierre el archivo.
TAREA 05: Bucle for 1¶
Lea el siguiente texto:
¿Qué es el bucle for?
Si desea ejecutar un bloque de código solo un número determinado de veces, se usa un bucle
fory la funciónrange().En código, una sentencia
fores así:1for i in range(5):
El bucle
forse compone de lo siguiente:La palabra clave
for.Un nombre de variable.
La palabra clave
in.Una llamada a la función
range()con hasta tres enteros pasados.Dos puntos (:)
A partir de la siguiente línea, un bloque de código con sangría (llamado cláusula for)
La función
range()puede tener uno, dos y tres parámetros así:Ejemplo
Significado
for i in range(10):Cuenta de uno en uno hasta diez.
for i in range(1,10):Comienza en uno y cuenta de uno en uno hasta diez.
for i in range(1,10,2):Comienza en uno y cuenta hasta diez pero de dos en dos.
Ejemplo:
1for i in range (10): 2print(i) 3 4print("--------------------") 5 6for j in range (1,10+1): 7 print(j) 8 9print("--------------------") 10 11for k in range (0,10+1,2): 12 print(k)
Acorde al texto anterior: ¿Qué es el bucle for?, en su cuaderno responda las siguientes preguntas:
¿Para que sirve el bucle
for?¿Qué diferencia hay entre el bucle
fory el buclewhile?¿De qué se compone el bucle
for?¿Cuáles son las diferencias entre la función
range ()cuando tiene uno, dos y tres parámetros?
CREE un archivo de nombre: A02T05-tablasMultiplicar.py y escriba el siguiente código (no olvide escribir los comentarios iniciales):
1print("tablas de multiplicar") 2 3print("TABLA DEL 1") 4tabla = 1 5for i in range (1,11): 6 print(f"{tabla} * {i} = {tabla * i}") 7 8print("-----------------") 9 10print("TABLA DEL 2") 11tabla = 2 12for i in range (1,11): 13 print(f"{tabla} * {i} = {tabla * i}")
EJECUTE el archivo A02T05-tablasMultiplicar.py y en su cuaderno responda:
¿De que trata el código?
¿Que pasa si en la función
range(), se establece que los parámetros van de 1 a 10?¿Por qué la variable tabla cambia de valor?
MODIFIQUE el archivo A02T05-tablasMultiplicar.py de tal forma que muestre las tablas de multiplicar del 1 al 10.
TAREA 06: Importando módulos con import¶
Lea el siguiente texto:
¿Qué son los módulos?
Python incluye un conjunto de módulos llamado biblioteca estándar. Cada módulo es un programa Python que contiene un grupo relacionado de funciones que pueden integrarse en sus programas. Por ejemplo:
El módulo math tiene funciones relacionadas con las matemáticas.
El módulo random tiene funciones relacionadas con los números aleatorios, etc.
Antes de poder usar las funciones de un módulo, se debe importar con una sentencia
import. En código, una sentenciaimportconsta de lo siguiente:La palabra clave import.
El nombre del módulo.
Opcionalmente, más nombres de módulos, siempre que estén separados por comas.
Una vez que se importa un módulo, se pueden usar todas sus funciones.
Ejemplo:
1import random 2 3numeroAleatorio = random.randint(1,100) # uso de random para generar un numero entre 1 y 100 4 5print(f"Numero aleatorio (1,100): {numeroAleatorio}")
Acorde al texto anterior: ¿Qué son los módulos?, en su cuaderno responda las siguientes preguntas:
¿Para qué sirven los importar módulos en Python?
¿Qué es la biblioteca estándar?
¿Cuál es y cómo se usa la sentencia para importar módulos en PYTHON?
¿De qué se compone una sentencia import?
INVESTIGUE en INTERNET los módulos de la biblioteca estándar de PYTHON para las siguientes categorías y realice una descripción corta por cada módulo:
Módulos numéricos y matemáticos (7 módulos)
Módulos de programación funcional (3 módulos)
Acceso a archivos y directorios (9 módulos)
Persistencia de datos (6 módulos)
Compresión de datos y archivado (6 módulos)
Formatos de archivo (5 módulos)
Servicios criptográficos (3 módulos)
Servicios genéricos del sistema operativo (7 módulos)
Librería de la interfaz de línea de comando (6 módulos)
Ejecución concurrente (8 módulos)
Comunicación en redes y entre procesos (7 módulos)
Manejo de datos de internet (7 módulos)
Servicios Multimedia (2 módulos)
Internacionalización (2 módulos)
Interfaces gráficas de usuario con TKINTER (3 módulos)
Depuración y perfilado (6 módulos)
Empaquetado y distribución de software (3 módulos)
Use el siguiente enlace:
Biblioteca estándar PythonLa biblioteca estándar de Python es muy amplia, y ofrece una gran cantidad de producciones como puede verse en la larga lista de contenidos.
https://docs.python.org/es/3/library/index.html
TAREA 07: EVALUACIÓN¶
Desarrollo de ejercicios
En esta tarea, el estudiante es evaluado con los temas vistos en la presente actividad. El estudiante aplica su conocimiento de PYTHON, en la ejecución y depuración de programas. Desarrolle los siguientes ejercicios:
EJERCICIO 01: Juego: Adivine el número
CREE un archivo de nombre: A02T07-adivinarNumero.py y escriba el siguiente código (no olvide escribir los comentarios iniciales):
1import random 2 3numeroSecreto = random.randint(1,20) 4 5print("ADIVINE EN NUMERO ENTRE 1 y 20") 6 7for intentos in range(1,7): 8 numeroUsuario = int(input("adivine el numero: ")) 9 10 if(numeroUsuario < numeroSecreto): 11 print("el numero es mayor") 12 elif(numeroUsuario > numeroSecreto): 13 print("el numero es menor") 14 else: 15 break 16 17if(numeroUsuario == numeroSecreto): 18 print(f"MUY BIEN, adivino el número después de {intentos} intentos") 19else: 20 print(f"GAME OVER, el numero era: {numeroSecreto}") 21 22print("ADIOS...")
EJECUTE el código A02T07-adivinarNumero.py y en su cuaderno responda:
¿De que trata el código?
¿Qué pasa si NO se adivina el número?
¿Qué pasa si SI se adivina el número?
¿Qué pasa si en vez de números, se inserta un carácter?
DEPURE el código y en su cuaderno escriba cada línea de código junto con la explicación dicha línea. Por ejemplo:
1import random # en esta línea de código se importa la librería random
CONVIERTA el código a DIAGRAMA DE FLUJO.
EJERCICIO 02: Juego: Piedra, Papel o Tijera
CREE un archivo de nombre: A02T07-piedraPapelTijera.py y escriba el siguiente código (no olvide escribir los comentarios iniciales):
1import random, sys 2 3print("PIEDRA, PAPEL o TIJERA") 4 5juegosGanados = 0 6juegosPerdidos = 0 7empates = 0 8 9while(True): 10 print(f"JUEGOS GANADOS: {juegosGanados} - JUEGOS PERDIDOS: {juegosPerdidos} - EMPATES: {empates}") 11 12 while(True): 13 eleccionJugador = input("Ingrese su movimiento: piedra, papel, tijera o (exit): ") 14 if(eleccionJugador == "exit"): 15 print("ADIOS...") 16 sys.exit() 17 if(eleccionJugador == "piedra" or eleccionJugador == "papel" or eleccionJugador == "tijera"): 18 break 19 print("DATO INGRESADO INCORRECTO!!!") 20 21 if(eleccionJugador == 'piedra'): 22 print('PIEDRA versus...') 23 elif(eleccionJugador == 'papel'): 24 print('PAPER versus...') 25 elif (eleccionJugador == 'tijera'): 26 print('TIJERA versus...') 27 28 numeroAleatorio = random.randint(1,3) 29 if(numeroAleatorio == 1): 30 eleccionPC = "piedra" 31 print("PIEDRA") 32 elif(numeroAleatorio == 2): 33 eleccionPC = "papel" 34 print("PAPEL") 35 elif(numeroAleatorio == 3): 36 eleccionPC = "tijera" 37 print("TIJERA") 38 39 if (eleccionJugador == eleccionPC): 40 print('Es un empate!') 41 empates = empates + 1 42 elif (eleccionJugador == 'piedra' and eleccionPC == 'tijera'): 43 print('Usted GANA!!!') 44 juegosGanados = juegosGanados + 1 45 elif (eleccionJugador == 'papel' and eleccionPC == 'piedra'): 46 print('Usted GANA!!!') 47 juegosGanados = juegosGanados + 1 48 elif (eleccionJugador == 'tijera' and eleccionPC == 'papel'): 49 print('Usted GANA!!!') 50 juegosGanados = juegosGanados + 1 51 elif (eleccionJugador == 'piedra' and eleccionPC == 'papel'): 52 print('Usted PIERDE!!!') 53 juegosPerdidos = juegosPerdidos + 1 54 elif (eleccionJugador == 'papel' and eleccionPC == 'tijera'): 55 print('Usted PIERDE!!!') 56 juegosPerdidos = juegosPerdidos + 1 57 elif (eleccionJugador == 'tijera' and eleccionPC == 'piedra'): 58 print('Usted PIERDE!!!') 59 juegosPerdidos = juegosPerdidos + 1
EJECUTE el código A02T07-piedraPapelTijera.py y en su cuaderno responda:
¿De que trata el código?
¿Cuales son las únicas palabras que se pueden escribir en el programa?
¿Qué pasa si se escribe una palabra diferente a piedra, papel, tijera o exit?
¿Qué mide el programa?
DEPURE el código y en su cuaderno escriba cada línea de código junto con la explicación dicha línea. Por ejemplo:
1import random, sys # en esta línea de código se importan las librería random y sys
CONVIERTA el código a DIAGRAMA DE FLUJO.