Documentos de Académico
Documentos de Profesional
Documentos de Cultura
LAB 006 Activity Create Loops
LAB 006 Activity Create Loops
February 1, 2024
Trabajas como analista de seguridad y escribes programas en Python para automatizar la visual-
ización de mensajes sobre intentos de conexión a la red, la detección de direcciones IP que intentan
acceder a datos restringidos y la generación de números de ID de empleados para un departamento
de ventas.
## Tarea 1
En esta tarea, crearás un bucle relacionado con la conexión a una red.
Escribe una sentencia iterativa que muestre No se pudo establecer la conexión tres veces. Uti-
liza la palabra clave for, la función range() y una variable de bucle i. Asegúrate de reemplazar
el fragmento ### TU CÓDIGO AQUÍ ### con tu propio código antes de ejecutar la siguiente celda.
[1]: # Sentencia iterativa usando `for`, `range()` y una variable de bucle `i`
# Muestra “No se pudo establecer la conexión” tres veces
1
for i in range(3):
print('No se pudo establecer la conexión.')
0.2 Tarea 2
La función range() también puede tomar una variable. Para repetir una acción especificada un de-
terminado número de veces, primero puedes asignar un valor entero a una variable. A continuación,
puedes pasar esa variable a la función range() dentro de un bucle for.
En tu código que muestra una conexión de mensajes de red, incorpora una variable llamada
connection_attempts. Asigna el número entero positivo de tu elección como valor de esa variable
y rellena la variable que falta en la sentencia iterativa. Asegúrate de reemplazar el fragmento ###
TU CÓDIGO AQUÍ ### con tu propio código antes de ejecutar la siguiente celda. Prueba el código
con diferentes valores para connection_attempts y observa lo que ocurre.
[2]: # Crea una variable llamada `connection_attempts` que almacene el número de␣
,→veces que el usuario ha intentado conectarse a la red
connection_attempts = 3
for i in range(connection_attempts):
print('No se pudo establecer la conexión.')
2
Pista 2
Pasa la variable apropiada a la función range() para que indique a Python que repita la acción
especificada el número de veces especificado.
## Tarea 3
Esta tarea también se puede realizar con un bucle while. Completa el bucle while con el código
correcto para indicarle que muestre “No se pudo establecer la conexión” tres veces.
En esta tarea, un bucle for y un bucle while producirán resultados similares, pero cada uno se
basa en un enfoque diferente. (En otras palabras, la lógica subyacente es diferente en cada uno).
Un bucle for termina después de que se haya completado un cierto número de iteraciones, mientras
que un bucle while termina una vez que alcanza una cierta condición. En situaciones en las que no
se sabe cuántas veces se debe repetir la acción especificada, los bucles while son los más apropiados.
Asegúrate de reemplazar el fragmento ### TU CÓDIGO AQUÍ ### con tu propio código antes de
ejecutar la siguiente celda.
[3]: # Asigna a `connection_attempts` un valor inicial de 0, para llevar la cuenta␣
,→de las veces que el usuario ha intentado conectarse a la red
connection_attempts = 0
connection_attempts = connection_attempts + 1
3
Utiliza la función print() para mostrar el mensaje apropiado al usuario.
Pregunta 1 ¿Qué diferencias observas entre el bucle for y el bucle while que es-
cribiste?
Considero en lo particular que el while es más sencillo de implementar, mientras que el for tiene
sus cosillas por allí que casi no me convencen.
0.3 Tarea 4
"192.168.205.12", "192.168.200.48"]
for i in ip_addresses:
print(i)
192.168.142.245
192.168.109.50
192.168.86.232
192.168.131.147
192.168.205.12
192.168.200.48
Pista 1
Utiliza i como variable de bucle y el operador in para indicar que la acción especificada debe
repetirse para cada elemento de la lista ip_addresses.
Pista 2
Para mostrar la variable de bucle en cada iteración, utiliza la función print() dentro del bucle
for.
## Tarea 5 Ahora te proporcionan una lista de direcciones IP a las que se les permite iniciar sesión,
almacenada en una variable llamada allow_list. Escribe una sentencia if dentro del bucle for.
4
Para cada dirección IP de la lista de direcciones IP desde las que los usuarios han intentado iniciar
sesión, muestra “Se permite la dirección IP” si está entre las direcciones permitidas y muestra
“No se permite la dirección IP” en caso contrario.
Asegúrate de reemplazar el fragmento ### TU CÓDIGO AQUÍ ### con tu propio código antes de
ejecutar la siguiente celda.
[28]: # Asigna `allow_list` a una lista de direcciones IP a las que se les permite␣
,→iniciar sesión
"192.168.205.12", "192.168.200.48"]
# Si está entre las direcciones permitidas, muestra “Se permite la dirección IP”
# De lo contrario, muestra “No se permite la dirección IP”
for i in allow_list:
if i in ip_addresses:
print('Se permite la dirección IP')
else:
print('No se permite la dirección IP')
No se permite la dirección IP
Se permite la dirección IP
No se permite la dirección IP
No se permite la dirección IP
Se permite la dirección IP
No se permite la dirección IP
No se permite la dirección IP
No se permite la dirección IP
Pista 1
Utiliza i como variable de bucle y el operador in para indicar que la acción especificada debe
repetirse para cada elemento de la lista ip_addresses.
Pista 2
Asegúrate de que la sentencia if comprueba si la dirección IP del usuario está en la lista de
5
direcciones IP permitidas.
Pista 3
Utiliza la función print() para mostrar los mensajes.
0.4 Tarea 6
Imaginemos ahora que la información a la que intentan acceder los usuarios está restringida, y si
una dirección IP fuera de la lista de direcciones IP permitidas intenta acceder, el bucle debería
terminar porque sería necesario investigar más a fondo para evaluar si esta actividad representa
una amenaza. Para conseguirlo, usa la palabra clave break y amplía el mensaje que se muestra
al usuario cuando su dirección IP no está en allow_list para proporcionar más detalles. En
lugar de “No se permite la dirección IP”, muestra “No se permite la dirección IP. Se
requiere una investigación adicional de la actividad de inicio de sesión”.
Asegúrate de reemplazar el fragmento ### TU CÓDIGO AQUÍ ### con tu propio código antes de
ejecutar la siguiente celda.
[32]: # Asigna `allow_list` a una lista de direcciones IP a las que se les permite␣
,→iniciar sesión
"192.168.205.12", "192.168.200.48"]
# Si está entre las direcciones permitidas, muestra “Se permite la dirección IP”
# De lo contrario, muestra “No se permite la dirección IP”
for i in allow_list:
if i in ip_addresses:
print('Se permite la dirección IP')
else:
print('No se permite la dirección IP')
break
No se permite la dirección IP
Pista 1
6
Utiliza i como variable de bucle y el operador in para indicar que la acción especificada debe
repetirse para cada elemento de la lista ip_addresses.
Asegúrate de que la sentencia if comprueba si la dirección IP del usuario está en la lista de
direcciones IP permitidas.
Utiliza la palabra clave break para terminar el bucle en el momento apropiado.
Pista 2
Utiliza la palabra clave break dentro de la sentencia else después de que se muestre el mensaje
apropiado.
Pista 3
Utiliza la función print() para mostrar los mensajes.
0.5 Tarea 7
i = 5000
5000
5005
5010
5015
5020
5025
5030
5035
5040
7
5045
5050
5055
5060
5065
5070
5075
5080
5085
5090
5095
5100
5105
5110
5115
5120
5125
5130
5135
5140
5145
5150
Pista 1
Utiliza un operador de comparación para verificar si i ha alcanzado el límite superior (que es el
número de ID de empleado más alto permitido). Recuerda que los ID de empleado deben estar
comprendidos entre 5000 y 5150.
Asegúrate de actualizar el valor de la variable de bucle i al final del bucle.
Pista 2
Utiliza el operador de comparación <= para verificar si i ha alcanzado el límite superior, ya que los
ID de empleado deben estar comprendidos entre 5000 y 5150.
Al final del bucle, incrementa la variable de bucle en 5. Esto se debe a que los ID de empleado
deben ser divisibles por 5 y el primer ID de empleado se establece en 5000.
Pista 3
Utiliza el operador de comparación <= para verificar si i ha llegado a 5150, ya que los ID de
empleado deben estar comprendidos entre 5000 y 5150.
Utiliza la función print() para mostrar la variable de bucle i en cada iteración.
Utiliza el operador de asignación = y el operador de suma + para incrementar el valor de la variable
de bucle al final de cada iteración.
8
0.6 Tarea 8
Te gustaría incorporar un mensaje que muestre Solo quedan 10 ID de empleado válidos como
una alerta útil una vez que la variable de bucle alcance 5100.
Para hacerlo, incluye una sentencia if en tu código.
Asegúrate de reemplazar el fragmento ### TU CÓDIGO AQUÍ ### con tu propio código antes de
ejecutar la siguiente celda.
[35]: # Asigna a la variable de bucle `i` un valor inicial de 5000
i = 5000
5000
5005
5010
5015
5020
5025
5030
5035
5040
5045
5050
5055
5060
5065
5070
5075
5080
5085
5090
5095
5100
Solo quedan 10 ID de empleado válidos
5105
9
5110
5115
5120
5125
5130
5135
5140
5145
5150
Pista 1
Utiliza un operador de comparación para verificar si i ha alcanzado 5100.
Pista 2
Utiliza el operador de comparación == para verificar si i ha alcanzado 5100.
Pista 3
Utiliza la función print() para mostrar el mensaje.
Pregunta 2 ¿Por qué crees que la sentencia print(i) está escrita antes de la condi-
cional en lugar de dentro de la condicional?
Para que se pueda ingrear al print y mostar el mensaje de que fgaltan 10 ID
0.7 Conclusión
10