100% encontró este documento útil (1 voto)
292 vistas117 páginas

Automatiza Tareas Con Python-Modulo 1

Este documento proporciona una introducción al séptimo curso de un programa de certificación en ciberseguridad. El curso se centra en enseñar los conceptos básicos de programación en Python y cómo se puede utilizar Python para automatizar tareas relacionadas con la ciberseguridad. Cubrirá temas como tipos de datos, variables, sentencias condicionales e iterativas, funciones, cadenas y listas en Python.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
100% encontró este documento útil (1 voto)
292 vistas117 páginas

Automatiza Tareas Con Python-Modulo 1

Este documento proporciona una introducción al séptimo curso de un programa de certificación en ciberseguridad. El curso se centra en enseñar los conceptos básicos de programación en Python y cómo se puede utilizar Python para automatizar tareas relacionadas con la ciberseguridad. Cubrirá temas como tipos de datos, variables, sentencias condicionales e iterativas, funciones, cadenas y listas en Python.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 117

Página 1 de 117

TABLA DE CONTENIDO
Pág.
I. MODULO 1 3
INTRODUCCIÓN A PYTHON 3
1. PRIMEROS PASOS EN EL CURSO 4
1.1 Introducción al curso 7 4
1.2 Descripción general del curso 7 4
1.3 Ángel: Mi trayectoria personal 10
1.4 Recursos y consejos útiles 11
2. INTRODUCCIÓN A LA PROGRAMACIÓN CON PYTHON EN CIBERSEGURIDAD 15
2.1 Te damos la bienvenida a la semana 1 15
2.2 Python y la ciberseguridad 15
2.3 Conoce Python 17
2.4 Crea un script básico de Python 19
2.5 Entornos de Python 21
2.6 Sugerencias para labs y pasos para solucionar problemas 23
2.7 Actividad: Practica escribir código Python 24
2.8 Ejemplo: Practica escribir código Python 30
2.9 Akash: Python y el profesional de la ciberseguridad 30
2.10 Pon a prueba tus conocimientos: Introducción a la programación en Python 30
en ciberseguridad
3. COMPONENTES BÁSICOS DE PYTHON 33
3.1 Tipos de datos en Python 33
3.2 Más información sobre los tipos de datos 36
3.3 Trabaja con variables en Python 43
3.4 Asigna y reasigna variables en Python 44
3.5 Actividad: Asigna variables de Python 49
3.6 Ejemplo: Asigna variables de Python 59
3.7 Pon a prueba tus conocimientos: Componentes básicos de Python 60
4. SENTENCIAS CONDICIONALES E ITERATIVAS 61
4.1 Sentencias condicionales en Python 61
4.2 Más sobre los condicionales en Python 66
4.3 Actividad: Crea una sentencia condicional 72
4.4 Ejemplo: Crea una sentencia condicional 83
4.5 Bucles for 83
4.6 Bucles while 86
4.7 Más información sobre los bucles en Python 88
4.8 Identify: Select the correct iterative statement 95
4.9 Actividad: Crea bucles 102
4.10 Ejemplo: Crea bucles 110
4.11 Pon a prueba tus conocimientos: Sentencias condicionales e iterativas 111
5. REVISIÓN: INTRODUCCIÓN A PYTHON 113
5.1 Resumen 113
5.2 Términos del glosario de la semana 1 113
5.3 Desafío semanal 1 115

Página 2 de 117
I. MODULO 1
INTRODUCCIÓN A PYTHON
Te brindaremos una introducción al lenguaje de programación Python y cómo se aplica en el
campo de la ciberseguridad. Además, explorarás conceptos fundamentales de Python, que
incluyen tipos de datos, variables, sentencias condicionales e iterativas.

Objetivos de aprendizaje

• Explica cómo se usa el lenguaje de programación Python en seguridad.

• Describe cómo se manejan los distintos tipos de datos en Python.

• Incorpora variables en código Python.

• Escribe sentencias condicionales en Python.

• Escribe sentencias iterativas en Python.

Página 3 de 117
1. PRIMEROS PASOS EN EL CURSO
1.1 Introducción al curso 7

La demanda de profesionales seguridad es más alta que nunca. Las empresas del mundo
requieren profesionales con tus conocimientos y habilidades para proteger sus sistemas contra
atacantes. Con cada vez más amenazas, los profesionales de seguridad suelen realizar diversas
tareas. Por eso incorporaremos otra herramienta en nuestra caja de herramientas de seguridad.
Una herramienta que simplifica muchas tareas muy comunes. Una que no solo se usa en
seguridad, sino también en ingeniería y ciencia de datos. Hablo de Python. ¡Hola! Felicitaciones
por llegar al siguiente paso en tu recorrido de seguridad. Me llamo Ángel. Soy Ingeniero de
Seguridad en Google. Me emociona acompañarte en este curso. Si has ido en orden, ya has
aplicado herramientas de seguridad para los procesos de detección, análisis y respuesta.

También aprendiste a comunicarte con tu computadora mediante Linux y SQL. Veamos cómo
programar en Python para hacer algunas tareas de seguridad comunes. A medida que
consideres tu próximo paso profesional, puede que encuentres que las habilidades de Python
te ayudarán en tu trabajo. Este curso es para aprender Python, empezando por lo básico. Luego
irás construyendo gradualmente sobre esos conceptos y aplicarás lo aprendido para ganar
experiencia práctica con ejemplos relacionados con la seguridad. Afortunadamente, Python es
conocido por su legibilidad. Al igual que cualquier idioma, se volverá más fácil con la práctica.
Muy pronto quizá estés usando Python en tu carrera de seguridad.

Python automatiza tareas importantes como el análisis de archivos.

Python me ayudó mucho en mi carrera en Google. Soy parte de un equipo que protege la
infraestructura de Google, es decir, todo lo que usan los empleados, como computadoras, redes
y recursos en la nube.

Para hacerlo, diseñamos soluciones de seguridad y automatizamos las tareas repetitivas.

Lo que me gusta de Python es que es multiplataforma y ya hay muchas herramientas de


seguridad creadas por miembros de la comunidad de seguridad que usan Python. Es fácil
encontrar herramientas útiles y obtener ayuda con problemas para realizar proyectos
profesionales y personales. Espero que este curso te sea útil. Veamos qué abarcaremos.
Primero, los conceptos básicos de programación en Python. Verás por qué Python se ha
adoptado en la seguridad en todo el mundo. También desarrollarás y ejecutarás tu primer

Página 4 de 117
programa. Después, nos centraremos en escribir código efectivo en Python. Veremos conceptos
que hacen el trabajo más eficiente. El siguiente tema principal es trabajar con cadenas y listas.
Servirán para muchos datos que verás en un contexto de seguridad. Finalmente, concluirás el
curso practicando en Python. Aprenderás sobre abrir y analizar archivos y acerca de depurar
código. Python es, sin duda, una habilidad útil para los analistas de seguridad. ¡Empecemos!

1.2 Descripción general del curso 7

¡Hola! Te damos la bienvenida a Automatiza las tareas de ciberseguridad con Python, el


séptimo curso del Certificado de Carrera de Google en Ciberseguridad. ¡Estás viviendo una
experiencia emocionante!

Al finalizar este curso, habrás adquirido una comprensión más profunda de la programación en
Python y de cómo este lenguaje puede ser empleado de manera efectiva, para automatizar
tareas relacionadas con la seguridad. Comenzarás con conceptos fundamentales en Python, que
incluyen tipos de datos y variables, así como sentencias condicionales e iterativas. Luego,
desarrollarás funciones en Python y trabajarás con datos de cadena y listas de diversas formas.
Por último, explorarás algoritmos que implican importar y analizar archivos.

Flujo del curso

El programa del Certificado de Ciberseguridad consta de ocho cursos. Automatiza las tareas de
ciberseguridad con Python es el séptimo curso.

Página 5 de 117
1. Los fundamentos de la ciberseguridad. — Explora la profesión de especialista en
ciberseguridad, incluidos los acontecimientos que llevaron al desarrollo de este campo y su
importancia para la operación de las organizaciones. Aprende sobre las funciones y
responsabilidades de nivel inicial de la especialización.

2. Ve a lo seguro: Gestiona los riesgos de seguridad — Identifica cómo los profesionales de


la ciberseguridad utilizan los marcos y controles para proteger las operaciones comerciales
y explora las herramientas más comunes.

3. Conexión y protección: Redes y seguridad de redes — Conoce las vulnerabilidades de las


redes y cómo protegerlas.

4. Herramientas del oficio: Linux y SQL — Explora los conocimientos informáticos básicos,
incluyendo la comunicación con el sistema operativo Linux a través de la línea de comandos
y la consulta de bases de datos con SQL.

5. Activos, amenazas y vulnerabilidades — Conoce la importancia de los controles de


seguridad y cómo se desarrolla la mentalidad de un agente de amenaza para poder prevenir,
proteger y defender los activos de una organización frente a las diversas amenazas, riesgos
y vulnerabilidades.

6. Haz sonar la alarma: Detección y respuesta — Comprende el ciclo de vida de la respuesta


a incidentes y practica el uso de herramientas para detectar y responder a incidentes de
ciberseguridad.

7. Automatiza las tareas de ciberseguridad con Python — (curso actual). Explora el lenguaje
de programación Python y escribe código para automatizar las tareas de ciberseguridad.

8. Ponlo en práctica: Prepárate para los trabajos de ciberseguridad — Aprende sobre


clasificación de incidentes, notificación a superiores (escalado) y formas de comunicación
con las partes interesadas. Este curso cierra el programa con consejos sobre cómo
relacionarse con la comunidad de la ciberseguridad y prepararse para la búsqueda de
empleo.

Contenido del curso 7

Página 6 de 117
Cada curso de este programa de certificados se divide en semanas. Puedes realizar los cursos a
tu propio ritmo, pero la división en semanas está diseñada para ayudarte a terminar todo el
Certificado de Ciberseguridad de Google en unos seis meses.

¿Qué hay por delante? A continuación, presentamos una descripción general de las habilidades
que adquirirás en cada semana de este curso.

Semana 1: Introducción a Python

Recibirás una introducción al lenguaje de programación Python y cómo se aplica en el campo


de la ciberseguridad. Además, explorarás conceptos fundamentales de Python, que incluyen
tipos de datos, variables, sentencias condicionales e iterativas.

Semana 2: Escribe código usando Python de forma efectiva

Ampliarás tu capacidad para trabajar con Python. Aprenderás sobre funciones predefinidas y
definidas por el usuario. También, explorarás cómo los módulos facilitan el acceso al código
reutilizable. Por último, te enfocarás en que tu código sea fácil de leer.

Semana 3: Trabaja con cadenas y listas

Página 7 de 117
Aprenderás más opciones para trabajar con cadenas y listas en Python, y descubrirás métodos
que se pueden aplicar a estos tipos de datos. Aplicarás este conocimiento para escribir un breve
algoritmo. Finalmente, usarás expresiones regulares para buscar patrones en las cadenas.

Semana 4: Python en la práctica

Aplicarás Python en situaciones prácticas, centrándote en la automatización de tareas


relacionadas con la ciberseguridad. Empezarás con la introducción a la apertura y lectura de
archivos. Posteriormente, aprenderás a analizar archivos y organizar su contenido. Finalmente,
te enfocarás en las estrategias para la depuración del código.

Qué puedes esperar

Cada curso ofrece muchos tipos de oportunidades de aprendizaje, que incluyen:

• Videos dirigidos por especialistas de Google para que puedas aprender nuevos conceptos,
empezar a usar las herramientas más relevantes, recibir apoyo profesional y escuchar
historias personales inspiradoras.

• Lecturas para que puedas incorporar nuevos conceptos, recibir consejos útiles y conocer
casos prácticos con base en los temas discutidos en los videos.

Página 8 de 117
• Foros de debate sobre temas del curso para que puedas profundizar sobre ellos mientras
chateas e intercambias ideas con otros estudiantes.

• Autoevaluaciones y laboratorios para que puedas poner en práctica tus conocimientos y


evaluar tu trabajo comparándolo con un ejemplo realizado.

• Complementos interactivos para que puedas practicar tareas específicas y aplicar los
conocimientos adquiridos en el curso.

• Cuestionarios en video para que compruebes tu comprensión a medida que avanzas en


cada video.

• Cuestionarios de práctica para ayudarte a comprender el contenido presentado en cada


video.

• Cuestionarios con calificación para medir tu progreso, darte una retroalimentación valiosa
y poder otorgarte tu certificado. De acuerdo con las pautas del programa, puedes realizar
una prueba con calificación varias veces, hasta lograr una puntuación aprobatoria del 80%
o más.

Consejos para tener éxito

• Recomendamos tomar los cursos y recorrer los puntos de cada lección en el orden en que
aparecen, ya que cada información y concepto nuevo se basa en los conocimientos
anteriores.

• Participa en todas las oportunidades de aprendizaje para obtener el mayor conocimiento y


experiencia posibles.

• Si algo es confuso, no dudes en volver a reproducir un video, revisar una lectura o repetir
una actividad de autoevaluación.

• Usa los recursos adicionales a los que se hace referencia en este curso. Están diseñados
para consolidar tu aprendizaje.

• Cuando encuentres enlaces útiles en un curso, recuerda agregarlos a tus marcadores para
que puedas consultar después la información y estudiarla o revisarla.

Página 9 de 117
• Comprende y sigue el Código de conducta de Coursera para garantizar que la comunidad de
aprendizaje siga siendo un lugar acogedor, amigable y de apoyo para todas las personas.

1.3 Ángel: Mi trayectoria personal

Me llamo Ángel. Soy Ingeniero de Seguridad en Google. Varias cosas en mi vida me llevaron a la
seguridad. Una fue la curiosidad que tenía de niño. Mis padres son contadores, tenían
calculadoras, portaminas y bolígrafos. Yo los desarmaba, separaba las piezas e intentaba
entender cómo funcionaban. Esto me llevó a la tecnología en general y el mismo concepto se
aplicó de nuevo: desarmar cosas para saber cómo funcionan. La seguridad intenta hacer eso:
descomponer cosas para probar si alguien puede romperlas antes que tú. Empecé como
ingeniero de redes.

Configuraba firewalls, switches y routers para empresas. Quería pasarme a ciberseguridad sobre
todo porque me motivaba lo que sucedía en el sector. Google fue víctima de la Operación Aurora
de un atacante extranjero. Al leer sobre el tema, pensé: “Ojalá pudiera colaborar en el frente
de batalla”. Al empezar en ciberseguridad, quería dar un salto en mi carrera en cuanto a qué
aprender y dónde estar. Por ejemplo, aprender automatización con Python. Tomé clases en
línea, completé las certificaciones, que en seguridad son muy populares, e incorporé algunos de
estos aspectos a mi trabajo actual. Al mudarme de México a los Estados Unidos para trabajar
aquí, tuve que aprender a ser flexible.

Para avanzar en la carrera, se deben aprender cosas nuevas. A veces, incluso, hay que
aprenderlas para permanecer donde estás. Creo que en tecnología en general, pero en especial
en seguridad, uno debe reinventarse siempre, seguir aprendiendo cómo funciona todo y cómo
ayudar al sector. Una habilidad importante en mi vida y en mi carrera de ciberseguridad es la
resiliencia. Aprendí mucho sobre la resiliencia al llegar aquí, a los Estados Unidos. Las cosas no
salieron como lo esperaba, tuve probar cosas nuevas y tener esperanza.

Eso es lo que se hace como profesional de la seguridad. Lo hacemos a diario. Tenemos que
encontrar formas para hacer que todo funcione, para hacer que los proyectos funcionen como
necesitamos, o bien para superar un problema. Faltan profesionales en ciberseguridad con
distintos antecedentes, es decir, distintas experiencias, distintas perspectivas y distintas formas
de abordar y resolver problemas.

En este sector, necesitamos más personas como tú.

Página 10 de 117
1.4 Recursos y consejos útiles

Puedes elegir realizar uno o varios cursos de este programa. Sin embargo, para obtener tu
certificado, deberás completar todos los cursos del programa. Aquí te contamos todo lo que se
requiere para obtener un certificado y las mejores prácticas para que tengas una buena
experiencia de aprendizaje en la plataforma.

Finalización del curso para obtener un certificado

Para enviar tareas con calificación y cumplir con todos los requisitos necesarios para recibir tu
Certificado en Ciberseguridad de Google, deberás hacer lo siguiente:

• Pagar la tarifa del certificado del curso o solicitar y obtener la aprobación para una ayuda
financiera de Coursera.

• Aprobar todas las tareas con calificación, en los ocho cursos, con el nivel mínimo (o superior)
de aprobación. Cada tarea con calificación en un curso es parte de una calificación
acumulativa para ese mismo curso. La puntuación mínima requerida para aprobar los cursos
es del 80%.

Consejos para terminar el curso

A continuación se presenta una lista de las mejores prácticas que te ayudarán a completar los
cursos en el programa de manera oportuna:

• Planifica tu tiempo: si programas momentos de estudio regularmente, en forma semanal,


y los respetas, el aprendizaje se hará parte de tu rutina. Utiliza un calendario o un
cronograma y haz una lista de lo que planeas hacer cada día para dividir tu trabajo en
objetivos realistas. Elige un lugar tranquilo para ver los videos, revisar las lecturas y realizar
las actividades, así puedes concentrarte en el material.

• Trabaja a tu propio ritmo: cada persona aprende de forma diferente, así que diseñamos
este programa para que puedas avanzar a tu propio ritmo. Aunque tus plazos empiezan a
correr cuando te inscribes, estos son solo una guía. Puedes avanzar por el programa a la
velocidad que prefieras. No hay ninguna penalización por entregar las tareas después de la
fecha límite; para obtener el certificado, simplemente tienes que terminar todo el trabajo.
Si lo prefieres, puedes ampliar los plazos volviendo a Descripción general en el panel de

Página 11 de 117
navegación y haciendo clic en Cambiar sesión. Si no cumpliste con los plazos anteriores, haz
clic en Restablecer mis plazos.

• Aprovecha la curiosidad: si hay una idea que te entusiasma, ¡aprovéchala! Haz preguntas,
busca más datos en línea, consulta los enlaces que te interesan y toma notas sobre tus
descubrimientos. Cada pequeña cosa que hagas para nutrir tu aprendizaje a lo largo del
proceso potenciará tus conocimientos, te abrirá más puertas en este campo de gran
crecimiento y te ayudará a tener las calificaciones necesarias para buscar empleo.

• Toma notas: las notas sirven para recordar información que crees que podría ser
importante en el futuro, especialmente cuando te preparas para entrar en un nuevo ámbito
laboral. Además, tomar notas es una forma eficaz de relacionar los temas entre sí y
comprenderlos mejor.

• Revisa los ejemplos: los ejemplos son tareas completadas que cumplen plenamente los
criterios de las actividades. Utilízalos para validar tu trabajo o comprobar si has cometido
errores. Aunque generalmente hay muchas maneras de completar una tarea, los ejemplos
te ofrecen orientación e inspiración sobre cómo hacerlo.

• Usa el chat (de manera responsable) con otras y otros estudiantes: quizás no seas la única
persona que tiene preguntas o dudas. Ve al foro de debate para comunicarte con otros
estudiantes y pedir ayuda. También puedes visitar la Comunidad global en línea de
Coursera. Consulta el Código de honor y el Código de conducta de Coursera para conocer
otras cosas importantes que debes saber.

• Actualiza tu perfil: Considera actualizar tu perfil en Coursera con tu foto, tus objetivos
profesionales y más. Cuando quienes estudian contigo te encuentren en los foros de debate,
pueden hacer clic en tu nombre para ver tu perfil y conocerte más.

Documentos, hojas de cálculo, presentaciones y labs para las actividades del curso

Para completar ciertas actividades en el programa, deberás usar documentos digitales, hojas de
cálculo, presentaciones y labs. Los profesionales de la seguridad utilizan estas herramientas de
software para colaborar dentro de sus equipos y organizaciones. Si necesitas más información
sobre el uso de una herramienta en particular, consulta estos recursos:

• Microsoft Word: Ayuda y aprendizaje: página de soporte técnico de Microsoft para Word

Página 12 de 117
• Google Docs: página del Centro de Ayuda para Google Docs

• Microsoft Excel: Ayuda y formación: página de soporte técnico de Microsoft para Excel

• Hojas de cálculo de Google: página del Centro de Ayuda para las hojas de cálculo de Google

• Microsoft PowerPoint: Ayuda y formación: página de soporte técnico de Microsoft para


PowerPoint

• Cómo usar Presentaciones de Google: página del Centro de Ayuda para Google Slides

• Problemas comunes con labs: ayuda para la resolución de problemas en las actividades de
Qwiklabs

Glosarios del curso

En este curso, se abarcan muchos términos y conceptos, algunos de los cuales es posible que ya
conozcas mientras que otros te resultarán nuevos. Para recordar el significado de un término o
revisar los conceptos antes de las pruebas con calificación, consulta los siguientes glosarios:

• Glosarios semanales: al final del contenido de cada semana, podrás revisar un glosario de
los términos utilizados. Estos glosarios se basan en los términos de las semanas anteriores
a ese curso y no se pueden descargar. Sin embargo, todos los términos y definiciones se
incluyen en los glosarios del curso y del certificado, que sí te ofrecen esa posibilidad.

• Glosarios del curso: al final de cada curso, podrás acceder y descargar un glosario que cubre
todos los términos del mismo.

• Glosario del certificado: este glosario incluye todos los términos del programa. Es un
recurso útil al que puedes recurrir en cualquier momento ahora o en el futuro.

Puedes encontrar los glosarios del curso y del certificado a través de la sección de Recursos del
curso, descargarlos y guardarlos en tu computadora.

También puedes acceder al glosario del Certificado en Ciberseguridad, haciendo clic en el


siguiente enlace y seleccionando “Usar plantilla”.

• Glosario del Certificado en Ciberseguridad

O BIEN

Página 13 de 117
• Si no tienes una cuenta de Google, puedes descargar el glosario directamente desde el
siguiente archivo adjunto.

Spanish_Cybersecurity Certificate glossaryDOCX File

Comentarios del curso

Proporcionar comentarios sobre videos, lecturas y otros materiales es fácil. Abre el curso en tu
navegador y busca los símbolos de pulgar hacia arriba y pulgar hacia abajo.

• Haz clic en los pulgares hacia arriba para los materiales que consideres útiles.

• Haz clic en los pulgares hacia abajo para los materiales que no te resulten útiles.

Si quieres marcar un problema específico, haz clic en el ícono de la bandera, selecciona una
categoría y escribe tu explicación en el cuadro de texto. Estos comentarios van dirigidos a
quienes desarrollan el curso y no son visibles para los estudiantes. Todos los comentarios
ayudarán a mejorar los programas de certificación en el futuro.

Para obtener asistencia técnica, visita el Centro de ayuda para estudiantes.

Página 14 de 117
2. INTRODUCCIÓN A LA PROGRAMACIÓN CON PYTHON EN CIBERSEGURIDAD
2.1 Te damos la bienvenida a la semana 1

Aprender un lenguaje de programación es como aprender un idioma. Por ejemplo, como todo
idioma humano, la programación consiste en palabras que se unen y organizan para formar
líneas de código. Estas líneas se usan para comunicarse con una computadora, similar a una
oración, indicándole cómo realizar una tarea. En esta sección, empezaremos a aprender el
lenguaje para comunicarnos con una computadora y a explorar componentes clave de Python.
Empezaremos con los conceptos básicos de la programación, comenzando con por qué los
analistas de seguridad usan Python. Luego, comenzaremos a construir las bases de Python.
Hablaremos de los tipos de datos. Después, veremos las variables. Por último, veremos
sentencias que podemos crear en Python, como sentencias condicionales. Las sentencias
condicionales incorporan lógica a nuestros programas. El segundo tipo de sentencia que
veremos es la sentencia iterativa. Las sentencias iterativas hacen repetir una línea de código
varias veces sin tener que reescribirlo. Aprender Python me ayudó a tener éxito en mi carrera
porque dedico menos tiempo a tareas repetitivas y me centro en tareas y problemas más
desafiantes.

Aplicar la automatización bien reduce mi carga de trabajo general, aumenta la productividad y


minimiza el riesgo de error humano. La automatización también me permite concentrarme en
mis tareas de ingeniería, que requieren más creatividad, colaboración y resolver problemas.
¿Todo listo para empezar a programar en Python? Comencemos.

2.2 Python y la ciberseguridad

Los profesionales de seguridad utilizan una variedad de herramientas. Una es la programación


de computadoras. Con la programación se crean instrucciones para que una computadora
ejecute tareas. Veamos un ejemplo de una máquina expendedora. Esta máquina es como una
computadora que da alimentos o bebidas a los clientes.

Página 15 de 117
Para recibir un producto, el cliente inserta dinero en la máquina y selecciona lo que desea.
Digamos que el cliente inserta un monto de US$ 5.

La máquina almacena este valor mientras se selecciona el producto. Si se elige un caramelo de


US$ 2, la máquina toma esta entrada, denominada también instrucción,

la entiende, entrega el caramelo de US$ 2 y da el cambio de US$ 3.

Existen muchos lenguajes de programación. Aquí nos centraremos en Python. Python se


considera como un lenguaje de propósito general. Esto significa que puede crear una variedad
de programas diferentes, y no está especializado en ningún problema particular en campos
como desarrollo web e inteligencia artificial. Python suele usarse para crear sitios web y analizar
datos. En seguridad, usamos Python sobre todo para automatizar tareas. La automatización es
usar tecnología para reducir la actividad humana y manual destinada a tareas comunes y
repetitivas. Por lo general, Python sirve para automatizar tareas cortas y simples. Por ejemplo,
un analista de seguridad que trata un incidente de seguridad podría tener un registro con
información necesaria. Leerlo manualmente tomaría mucho tiempo, pero con Python los
analistas encuentran lo que necesitan. Otro ejemplo: se podría usar Python para gestionar una
lista de control acceso, que controla quiénes pueden acceder al sistema y sus recursos. Sería
potencialmente menos consistente si los analistas tuvieran que quitar manualmente el acceso
de un empleado cada vez que dejara la empresa. Un programa Python puede monitorear
periódicamente esto. O bien, puede hacer algunas tareas automatizadas como analizar el tráfico

Página 16 de 117
de la red. Aunque estas tareas pueden realizarse con aplicaciones externas, también pueden
hacerse con Python. Además de automatizar tareas individuales, Python puede combinar tareas
en un solo flujo de trabajo. Imagina que un manual de estrategias indica que un analista debe
resolver cierta situación entregando un archivo y notificando a las personas adecuadas.

Python puede conectar estos procesos. Entonces, ¿por qué se elegiría Python para esas tareas
en seguridad?

Hay varias Ventajas que Python ofrece como lenguaje de programación. Python es fácil de usar
porque se asemeja al lenguaje humano, requiere menos código y es fácil de leer. Los
programadores de Python también pueden seguir las pautas estándar para garantizar la
coherencia entre diseño y la legibilidad del código. Otra razón para aprender Python es que hay
mucho soporte en línea. Python también tiene mucho código integrado que puede importarse
y usarse para hacer diversas tareas. Estas son solo algunas razones por las que Python aún tiene
mucha demanda en distintos sectores del mundo. Seguro verás más al trabajar en seguridad.
¡Todo esto suena genial! Tomemos un breve descanso y luego ejecutemos código Python.

Nos vemos en el próximo video.

2.3 Conoce Python

En esta lección, explorarás cómo funciona la programación, de qué modo una computadora
procesa el lenguaje Python y de qué manera se emplea en la ciberseguridad.

Cómo funciona la programación

La programación es un proceso mediante el cual se crean instrucciones específicas para que una
computadora ejecute tareas determinadas. Los programas informáticos están presentes en
todas partes, ya sea en computadoras, teléfonos celulares y una amplia variedad de dispositivos
electrónicos. Todos ellos reciben y ejecutan instrucciones a través de programas informáticos.

Existen varios lenguajes de programación que se utilizan para crear programas informáticos, y
Python es uno de ellos. Estos lenguajes se traducen a números binarios, que son secuencias de
ceros y unos que representan las operaciones que la unidad central de procesamiento (CPU) de
la computadora debe realizar. Cada instrucción corresponde a una operación específica, ya sea
sumar dos números o cargar un valor desde la memoria.

Página 17 de 117
Para las personas, comunicarse de esta manera sería muy lento y laborioso. Los lenguajes de
programación, como Python, facilitan la escritura de código, ya que permiten utilizar menos
sintaxis a la hora de dar instrucciones a las computadoras en la realización de procesos
complejos.

Uso de Python para programar

Python es un lenguaje de programación de propósito general que ofrece soluciones para una
gran variedad de problemas. Por ejemplo, se puede utilizar para crear sitios web, realizar análisis
de datos y automatizar tareas.

Antes de que la computadora pueda procesar el código Python, este debe ser convertido a
través de un intérprete. Un intérprete es un programa informático que traduce el código Python
en instrucciones ejecutables línea por línea.

Versiones de Python

Existen varias versiones de Python. En este curso, se utiliza Python 3. Es importante estar al
tanto de la versión que estás usando al trabajar con Python, dado que hay diferencias en la
sintaxis de cada versión. La sintaxis se refiere a las reglas que determinan qué está
correctamente estructurado en un lenguaje de programación.

Python en la ciberseguridad

En el ámbito de la ciberseguridad, Python desempeña un papel crucial, especialmente para la


automatización. La automatización implica el uso de la tecnología para reducir la carga de
trabajo humana y manual en la ejecución de tareas comunes y repetitivas. A continuación, se
detallan algunas áreas específicas de la ciberseguridad en las que Python podría utilizarse para
automatizar tareas:

• Análisis de registros.
• Análisis del malware.
• Gestión de listas de control de acceso.
• Detección de intrusiones.
• Controles del cumplimiento normativo.
• Análisis de red.

Página 18 de 117
Conclusiones clave

Python es un lenguaje de programación, o dicho de otra manera, un lenguaje utilizado para


crear instrucciones que una computadora puede seguir para completar tareas específicas. Estos
lenguajes de programación se convierten en números binarios que la máquina puede comprender
y ejecutar. Es importante tener en cuenta que existen múltiples versiones de Python, y cada una
de ellas presenta diferencias en su sintaxis. Python resulta especialmente útil en el ámbito de la
ciberseguridad, ya que se emplea para automatizar tareas repetitivas de manera eficiente.

2.4 Crea un script básico de Python

¡Hola! Antes hablamos de los conceptos básicos de Python. Ahora, practicaremos escribir y
ejecutar código. Al trabajar en Python, lo que escribimos se denomina "script" o "programa".
Entre ambos hay diferencias sutiles. Comparemos un programa de computación con una obra
teatral. Casi todas las obras teatrales tienen un guion escrito.

Los actores lo estudian y memorizan para recitarlo ante un público. Sin embargo, ese no es el
único componente. También, está toda la actuación en sí.

Página 19 de 117
Los directores toman decisiones de iluminación, vestuario y escenografía.

La representación en su conjunto involucra muchas decisiones de diseño, como de escenografía,


iluminación y vestuario. El proceso de crear esta producción es similar al de programar en
Python. La programación implica muchas decisiones de diseño. Pero el proceso de escribir
scripts en Python es más como escribir los diálogos específicos que dirán los actores. En Python,
es buena práctica empezar con un comentario. Un comentario es una nota que los
programadores hacen sobre la intención del código. Agreguemos uno ahora.

Página 20 de 117
Empezamos con el símbolo de numeral para indicar que es un comentario. Luego agregaremos
detalles sobre la intención. Aquí imprimiremos “Hello Python” en la pantalla.

Bien. Escribamos nuestra primera línea de código en Python.

Este código usa print.

Print produce un objeto especificado en la pantalla.

Después de print, ponemos lo deseado entre paréntesis.

¡En este caso, la cadena “Hello Python!”.

Debemos colocar las cadenas entre comillas. Estas comillas son solo un ejemplo de sintaxis que
verás en Python. La sintaxis se refiere a las reglas que determinan qué está estructurado
correctamente en un lenguaje de programación.

Ahora, ejecutaremos este código para que la computadora pueda imprimir la cadena. Acabas
de ejecutar tu primera línea de código. Dado que nuestra sintaxis es correcta, la cadena se
muestra. Ya escribiste y ejecutaste código en Python, ahora podemos hablar de sus
componentes básicos. Nos vemos pronto.

2.5 Entornos de Python

Puedes ejecutar Python a través de una variedad de entornos. Estos entornos incluyen
cuadernos (notebooks), entornos de desarrollo integrados (IDE) y la línea de comandos, que te
serán presentados en esta lectura. Aquí te centrarás principalmente en los cuadernos, ya que
así es como interactuarás con Python en este curso.

Cuadernos (notebooks)

Una forma de escribir código Python es a través de un cuaderno, también conocido como
notebook. En este curso, interactuarás con Python a través de cuadernos. Un cuaderno es una
interfaz en línea para escribir, almacenar y ejecutar código. También te permite documentar

Página 21 de 117
información sobre el código. El contenido del cuaderno puede aparecer en una celda de código
o en una celda de Markdown.

Celdas de código

Las celdas de código están diseñadas para escribir y ejecutar código. En un cuaderno, se
proporciona un mecanismo para ejecutar estas celdas de código, habitualmente representado
por un botón de reproducción dentro de la celda. Al ejecutar el código, su salida se mostrará
después del mismo.

Celdas de Markdown

Por otro lado, las celdas Markdown sirven para describir el código. Permiten dar formato al texto
utilizando lenguaje Markdown, el cual se emplea para dar formato a texto plano en editores de
texto y de código. Por ejemplo, puedes indicar que el texto debe tener un determinado estilo
de encabezado.

Entornos de cuadernos habituales

Dos entornos de cuadernos (notebooks) habituales son Jupyter Notebook y Google


Collaboratory (Google Colab). Permiten ejecutar varios lenguajes de programación, incluido
Python.

Entornos de desarrollo integrados (IDE)

Otra opción para escribir código Python es a través de un entorno de desarrollo integrado (IDE),
una aplicación de software para escribir código que proporciona asistencia para la edición y
herramientas de corrección de errores. Los IDE incluyen una interfaz gráfica de usuario (GUI)
que ofrece a los programadores diversas opciones para personalizar y construir sus programas.

Línea de comandos

La línea de comandos es otro entorno que te permite ejecutar programas Python.


Anteriormente, aprendiste que una interfaz de línea de comandos (CLI) es una interfaz de
usuario basada en texto que utiliza comandos para interactuar con la computadora. Al ingresar
comandos en la línea de comandos, puedes acceder a todos los archivos y directorios guardados
en tu disco duro, incluidos aquellos que contienen código Python que deseas ejecutar. También,

Página 22 de 117
puedes usar la línea de comandos para abrir un editor de archivos y crear un nuevo archivo
Python.

Conclusiones clave

Los analistas de seguridad pueden acceder a Python a través de diversos entornos, como
cuadernos, entornos de desarrollo integrados y la línea de comandos. En este curso, utilizarás
cuadernos, que son interfaces en línea para interactuar con el código. Estos contienen celdas de
código para escribir y ejecutar código, así como celdas de Markdown para descripciones en
texto plano.

2.6 Sugerencias para labs y pasos para solucionar problemas

A lo largo de esta certificación, usarás Qwiklabs y notebooks de Jupyter para completar


actividades prácticas que incluyen la línea de comandos de Linux, la captura de paquetes y
tareas de programación en Python. En esta lectura, abordaremos algunas sugerencias y pasos
para solucionar problemas relacionados con el uso de Qwiklabs y notebooks de Jupyter en tu
computadora.

Compatibilidad del navegador

Asegúrate de que tu navegador de Internet se actualice con regularidad. Qwiklabs y los


notebooks de Jupyter requieren la versión más reciente de Google Chrome, Firefox o Microsoft
Edge. Si tu navegador está desactualizado o utilizas uno que no es compatible con Qwiklabs o
los notebooks de Jupyter, es posible que tengas problemas. Si tu navegador es uno los
mencionados y lo tienes actualizado, pero sigues teniendo problemas, intenta reiniciarlo o
borrar su caché y sus cookies. También puedes usar el modo Incógnito, que impide que el
navegador almacene cookies y otros datos temporales.

Nota: La interfaz de usuario de Qwiklabs funciona mejor con Google Chrome.

Conexión a Internet

Qwiklabs y los notebooks de Jupyter requieren una conexión a Internet estable. Si tienes
problemas para iniciarlos o para completar actividades en ellos, es posible que tu conexión a
Internet sea lenta o inestable. Algunos indicadores de una conexión a Internet inestable pueden
ser que las pantallas de los labs se congelen, la dificultad para conectarse a las máquinas
virtuales o la imposibilidad de escribir o ingresar comandos en el entorno del lab.

Página 23 de 117
Sugerencia profesional: Si no puedes completar un Qwiklab o un lab de notebooks de Jupyter en
un dispositivo, intenta usar otro.

Pasos para solucionar problemas

En resumen, estos son los pasos que debes seguir para solucionar problemas con Qwiklabs o
notebooks de Jupyter.

1. Asegúrate de usar la versión más reciente de un navegador compatible, como Google


Chrome, Firefox o Microsoft Edge.

2. Reinicia el navegador y borra las cookies y la caché del navegador. También puedes usar el
modo Incógnito.

3. Revisa tu conexión a Internet y asegúrate de que sea estable. Puedes reiniciar el router y el
módem para volver a tener una conexión estable.

4. Vuelve a reiniciar Qwiklabs o los notebooks de Jupyter.

5. Solo para Qwiklabs: Si los problemas persisten o recibes un mensaje que indica que superaste
la cuota de un Qwiklab, envía este formulario al equipo de asistencia de Qwiklabs para obtener
ayuda.

2.7 Actividad: Practica escribir código Python

Instrucciones:

En este lab, abrirás un entorno de cuaderno para practicar la escritura de código Python. Se te
presentará una situación de seguridad para explorar en todo el lab. A continuación, te
familiarizarás con el trabajo en un entorno de cuaderno, la escritura de comentarios de código
en Python y la visualización de cadenas con la función print().

Lo que podrás hacer después de este lab:

• Comprender las capacidades de un entorno de cuaderno.

• Escribir comentarios de código en Python.

• Mostrar cadenas con la función print().

Al completar el lab, ten en cuenta las siguientes funcionalidades:

Página 24 de 117
• Tareas: Las instrucciones paso a paso en cada tarea te guiarán a través del lab.

• Preguntas: Las preguntas de reflexión te ayudarán a hacer una pausa para revisar los
conceptos y analizar tu resultado a medida que avanzas a través del lab.

• Pistas: Las pistas ocultas proporcionan sugerencias opcionales que puedes tener en cuenta
para completar tu trabajo.

Debes completar este lab antes de continuar. En el siguiente elemento del curso, se revisará el
ejemplo de un lab terminado. Puedes comparar las respuestas de código y texto en el ejemplo
con las tuyas.

Actividad: Práctica de escritura de código Python

Introducción

Python es un lenguaje de programación que ayuda a automatizar instrucciones para la


computadora en una variedad de contextos, incluidos los de seguridad. Escribir código en
Python es una habilidad valiosa que ayuda a los analistas de seguridad a prosperar en el aspecto
técnico de su trabajo.

En este laboratorio, practicarás la escritura de tu primer código Python mientras aprendes sobre
un entorno de cuaderno (o notebook). La práctica que realizas a lo largo de los laboratorios te
ayudará a aplicar las habilidades de programación con Python a tu trabajo como analista de
seguridad. Para aprovechar los laboratorios al máximo, asegúrate de no limitarte a escribir en
las celdas que se te pide que completes, sino también de analizar todas las celdas a fondo.

Consejos para completar este laboratorio

Situación hipotética

Como analista de seguridad, a menudo usarás cuadernos y entornos de cuadernos para escribir
y ejecutar código. Este laboratorio te ayudará a familiarizarte con el trabajo en un entorno de
cuaderno, escribir comentarios sobre el código en Python y mostrar cadenas con la
función print().

En este laboratorio, completarás una serie de tareas que implican observar y ejecutar algunas
celdas de texto y código escritas previamente, así como rellenar celdas con tu propio texto,
código Python y comentarios sobre el código.

Página 25 de 117
Tarea 1

El entorno de laboratorio en el que estás trabajando es un entorno de codificación basado en


cuadernos. Los cuadernos, como este, constan de dos tipos de celdas: (1) celdas de texto,
también conocidas como celdas de markdown, y (2) celdas de código.

Las celdas de markdown te permiten escribir texto sin formato y formatearlo en lenguaje
markdown. El lenguaje markdown se utiliza para formatear texto plano en editores de texto y
editores de código. Por ejemplo, puedes usar markdown para crear encabezados, formatear
palabras en negrita o cursiva, formatear texto como código, agregar hipervínculos y más.

Para esta tarea, escribe algo en la siguiente celda markdown. Asegúrate de reemplazar el “[Haz
doble clic para editar esta celda markdown y escribe algo aquí.]” con tu propia respuesta.

[Haz doble clic para editar esta celda markdown y escribe algo aquí.]

Tarea 2

En los cuadernos de Python, las celdas de código te permiten escribir comentarios sobre el
código y código en Python.

Para ejecutar una celda de código, primero debes colocar el cursor sobre ella. A continuación,
puedes hacer clic en el icono de reproducción o presionar las teclas Mayús e Intro (o, en algunos
teclados, las teclas Mayús y Retorno).

Para esta tarea, ejecuta la siguiente celda de código tal como está y observa el resultado.

Página 26 de 117
Pregunta 1

¿Qué observas acerca del resultado después de ejecutar la celda de código?

Tarea 3

Escribir comentarios sobre el código es una forma de documentar la intención detrás del código.
Es un estándar que los analistas suelen usar en su flujo de trabajo. Escribir comentarios que
acompañen el código también te permite hacer un seguimiento de las decisiones técnicas que
tomaste en tu proyecto. Esto hace que sea más fácil para ti y tu equipo leer y revisar tu código
para comprender qué hace y por qué adoptaste ciertos enfoques.

Para esta tarea, ejecuta la siguiente celda de código tal como está y observa el resultado.

Pregunta 2

¿Qué observas acerca del resultado después de ejecutar la celda anterior?

Tarea 4

Para escribir en una celda de código, primero debes hacer clic en ella. Luego, puedes escribir
comentarios y código dentro de la celda.

Para esta tarea, agrega un comentario al comienzo de la siguiente celda de código describiendo
qué hace el código. Escribe el comentario para decir # Esta celda muestra "Estoy usando

Página 27 de 117
Python.". Asegúrate de reemplazar el fragmento # TU COMENTARIO AQUÍ con tu propio
comentario antes de ejecutar la siguiente celda.

Pregunta 3

¿Qué observas acerca del resultado después de ejecutar la celda anterior?

Tarea 5

En Python, print() te ayuda a mostrar información en la pantalla.

Para esta tarea, usa print() para mostrar el mensaje "Soy un analista de seguridad" colocando
ese mensaje entre los paréntesis. Asegúrate de reemplazar el fragmento ### TU CÓDIGO AQUÍ
### con tu propio código antes de ejecutar la siguiente celda de código.

Pregunta 4

¿Qué observas acerca del resultado después de ejecutar la celda anterior?

Página 28 de 117
Tarea 6

Para esta tarea, escribe una sentencia print() para mostrar la cadena "¡Python es útil para la
seguridad!" Asegúrate de reemplazar el fragmento ### TU CÓDIGO AQUÍ ### con tu propio
código antes de ejecutar la siguiente celda de código.

Pregunta 5

¿Qué observas acerca del resultado después de ejecutar la celda anterior?

Tarea 7

Para tu última tarea, combinarás todas las sentencias de print() que hayas encontrado y escrito
en este laboratorio hasta ahora en una celda de código.

Completa el siguiente código con los mensajes restantes. Asegúrate de reemplazar cada ### TU
CÓDIGO AQUÍ ### con tu propio código antes de ejecutar la siguiente celda.

Página 29 de 117
Pregunta 6

¿Qué observas acerca del resultado después de ejecutar la celda anterior?

Conclusión

¿Qué conclusiones clave obtuviste de este laboratorio?

2.8 Ejemplo: Practica escribir código Python

Aquí tienes un ejemplo completo del lab.

Compara el código y las respuestas de texto en el ejemplo con el lab que completaste. ¿En qué
se diferencian? Usa las respuestas a estas preguntas para guiarte a medida que avanzas en el
curso.

2.9 Akash: Python y el profesional de la ciberseguridad

Me llamo Akash. Soy Ingeniero de Seguridad en Google. Como ingeniero de ciberseguridad,


usarás Python casi toda tu carrera. Es muy importante aprender Python. Cuando te adentres en
la ciberseguridad, estarás lidiando con millones de puntos de datos, lo cual sería muy difícil de
analizar manualmente. Es aquí cuando entra Python para automatizar, escribir scripts y
pequeños programas que serán capaces de hacer lo mismo al instante. Aprender Python es
divertido. Cuando ves que con 10 líneas de código se pueden analizar megabytes de datos en
segundos, puede ser muy gratificante. Hay un montón de recursos para Python y muchas
comunidades de código abierto. La gente ayuda mucho. Mantén la curiosidad, desafíate con
pequeños problemas, pon manos a la obra y busca recursos de sintaxis y aprendizaje en línea.
Como Ingeniero de Seguridad en Google Chrome, protejo a nuestros clientes contra gobiernos
extranjeros y amenazas persistentes en todo el mundo. Las amenazas son ilimitadas, por eso, la
ciberseguridad me entusiasma mucho. Así que mantente en ello, es una habilidad esencial que
tomará algo de tiempo al principio para desarrollar, pero te servirá a lo largo de toda tu carrera.

Página 30 de 117
2.10 Pon a prueba tus conocimientos: Introducción a la programación en Python en
ciberseguridad

Página 31 de 117
Página 32 de 117
3. COMPONENTES BÁSICOS DE PYTHON

3.1 Tipos de datos en Python

El siguiente tema se relaciona con la categorización de datos en Python. Primero, pensemos en


otro entorno donde aplicamos categorías. Pensemos en trabajar en una cocina. Al cocinar,
podemos clasificar los ingredientes que usamos.

Por ejemplo, las zanahorias y los pimientos son vegetales, y el pollo y la ternera son carne. Las
categorías son importantes porque afectan cómo manejamos estos ingredientes. Al trabajar en
Python, los tipos de datos cumplen un propósito similar. Un tipo de datos es una categoría para
un tipo particular de elemento de datos. Python usa varios tipos de datos. Veremos cadena,
float, enteros, booleanos y listas. ¡Al imprimir el texto “Hello Python!” del video anterior,
usamos datos de cadena.

Los datos de cadena son una secuencia ordenada de caracteres. Los caracteres pueden ser
letras, símbolos, espacios e incluso números. Los números en el tipo de datos de cadena no se
pueden usar para hacer cálculos. Todos los caracteres de una cadena deben colocarse entre
comillas. Por suerte, Python te avisa con un mensaje de error si te olvidas una comilla. Usemos
el código de antes y veamos qué pasa si omitimos las comillas.

Página 33 de 117
Observa que falta una comilla al final de la cadena. Al ejecutar este código, recibiremos un
mensaje de error. Python también admite tipos de datos numéricos. Al trabajar con datos
numéricos, no colocamos los datos entre comillas. Los datos numéricos pueden ser float y
enteros.

Los datos float son números con un punto decimal. Pueden ser, por ejemplo, fracciones como
2.1 o 10.5. También incluye números enteros con un punto decimal como 2.0 o 10.0.

Los datos enteros son números sin punto decimal. Los números como 0, -9 y 5000 son enteros
válidos. Hasta ahora, hemos usado la función print para generar una cadena. Pero también se
puede usar con los tipos float y entero para hacer cálculos. Probemos un ejemplo de esto. En
primer lugar, ya que es buena práctica, agreguemos un comentario para explicar el propósito
del código. Luego le indicaremos a Python qué calcular.

La salida nos da la respuesta. 1 + 1 es igual a 2. Podemos usar print con datos float y enteros
para todo tipo de operaciones matemáticas, como sumas, restas, multiplicaciones y divisiones.
El tercer tipo de datos en Python se llama booleano.

Los datos booleanos solo pueden ser uno de dos valores, verdadero o falso. Los booleanos son
útiles para la lógica en nuestros programas. Por ejemplo, comparemos números y
determinemos los valores booleanos.

Primero usaremos la función print para evaluar si 10 es menor que 5.

Luego evaluaremos si 9 es menor que 12.

Página 34 de 117
¿Qué te parece? 10 no es menor que 5, pero 9 es menor que 12, ¿cierto?

Veamos cómo maneja Python esto al ejecutarlo. Python está de acuerdo. La primera línea de
salida dice que es falso, o false, decir “10 es menor que 5”. La segunda dice que es verdadero, o
true, decir “9 es menor que 12”. Usaremos más booleanos al empezar con condiciones en el
código. El último tipo de datos son las listas.

Los datos de lista se componen de una estructura de datos en forma secuencial. Crearemos e
imprimiremos una lista de los nombres de usuario de las tres personas que tienen acceso a un
archivo confidencial. Primero agregamos nuestro comentario sobre la intención de imprimir
esta lista. Después de la palabra clave print, agregamos la lista. Debemos colocar la lista entre
corchetes. Luego colocamos los elementos individuales de la lista entre comillas y los separamos
con comas.

Ahora, ejecutemos esto. Como era de esperar, obtenemos la lista. Cuando se imprime, aún tiene
los corchetes. Esto es solo el comienzo de lo que puedes hacer con las listas. Al desarrollar tus
habilidades, aprenderás a acceder y editar elementos individuales de listas.

Esto fue un breve resumen de los cinco tipos de datos principales en Python: cadena, entero,
float, booleano y lista.

Estos son tipos de datos comunes con los que trabajarás a medida que avanzamos en las
lecciones.

Página 35 de 117
3.2 Más información sobre los tipos de datos

Anteriormente, exploraste los tipos de datos en Python. Un tipo de datos es una categoría para
una clase particular de elemento de datos. Te enfocaste en los datos de cadena, de lista, float,
entero y booleano, que son los tipos de datos con los que trabajarás a lo largo de este curso. En
esta lectura, profundizarás tus conocimientos sobre estos tipos de datos y se te presentarán,
además, tres tipos adicionales.

Cadena

En Python, las cadenas son datos que constan de una secuencia ordenada de caracteres. Los
caracteres de una cadena pueden incluir letras, números, símbolos y espacios. Estos deben
colocarse entre comillas. A continuación, verás una serie de cadenas válidas:

• "updates needed"

• "20%"

• "5.0"

• "35"

• "**/**/**"

• ""

Nota: El último elemento (""), que no contiene nada entre comillas, se denomina cadena vacía.

Puedes usar la función print() para mostrar una cadena. Puedes explorar esto ejecutando este
código

El código imprime "updates needed".

Página 36 de 117
Las cadenas pueden ir entre comillas dobles ("") o simples (''). El siguiente código demuestra
que el mismo mensaje se imprime cuando la cadena está entre comillas simples:

Nota: Elegir un tipo de comillas y utilizarlo de forma consistente facilita la lectura del código. En
este curso, se utilizan comillas dobles.

Lista

En Python, una lista es una estructura que consta de una serie de datos en forma secuencial.
Los elementos de las listas pueden ser de cualquier tipo de datos, como cadenas, enteros,
booleanos o, incluso, otras listas. Los elementos de una lista se colocan entre corchetes y cada
elemento se separa con una coma. La siguiente lista contiene elementos de varios tipos de
datos:

• [12, 36, 54, 1, 7]

• ["eraab", "arusso", "drosas"]

• [True, False, True, True]

• [15, "approved", True, 45.5, False]

• []

Nota: El último elemento [], que no contiene nada entre corchetes, se denomina lista vacía.

También puedes usar la función print() para mostrar una lista:

Página 37 de 117
Esto muestra una lista que contiene los números entero 12, 36, 54, 1, y 7.

Enteros

En Python, los datos enteros son datos formados por un número sin punto decimal. A
continuación, verás ejemplos de datos enteros:

• -100

• -12

• -1

• 0

• 1

• 20

• 500

Los enteros no se colocan entre comillas. Puedes usar la función print() para mostrar un número
entero. Cuando ejecutas este código, muestra el número 5:

También puedes utilizar la función print() para realizar operaciones matemáticas con números
enteros. Por ejemplo, este código suma dos enteros:

Página 38 de 117
El resultado es 7. También, puedes restar, multiplicar o dividir dos números enteros.

Float

Los datos float (de punto flotante) son datos formados por un número con un punto decimal.
A continuación, verás ejemplos de datos flotantes:

• -2.2

• -1.34

• 0.0

• 0.34

Al igual que los datos enteros, los float no se colocan entre comillas. Además, también puedes
utilizar la función print() para mostrar float o realizar cálculos matemáticos con ellos. Puedes
ejecutar el siguiente código para revisar el resultado de este cálculo:

El resultado es 4.0.

Nota: La división de dos valores enteros o dos valores float da como resultado una salida float
cuando se utiliza el símbolo /:

Página 39 de 117
La salida de ambos cálculos es el valor float de .25.

Si deseas devolver un valor entero de un cálculo que divide dos números enteros, debes usar el
símbolo // en su lugar:

En este caso, la salida es el valor entero 0, ya que el uso de este símbolo redondea el cálculo de
.25 al entero más cercano.

Booleanos

Los datos booleanos son datos que solo pueden tener uno de dos valores: True (verdadero) o
False (falso).

No debes colocar los valores booleanos entre comillas. Al ejecutar el siguiente código, se
muestra el valor booleano True:

Página 40 de 117
También puedes devolver un valor booleano comparando números. Como 9 no es mayor que
10, este código se evalúa como False:

Tipos de datos adicionales

En este curso, trabajarás con los tipos de datos cadena, lista, entero, float y booleano, aunque
existen otros tipos de datos adicionales. Estos incluyen datos de tupla, de diccionario y de
conjunto.

Tupla

Una tupla consta de un conjunto de datos que no se pueden modificar. Al igual que las listas, las
tuplas pueden contener elementos de distintos tipos de datos.

Una diferencia entre los datos de tupla y los de lista es que es posible modificar los elementos
en una lista, pero no es posible hacerlo en una tupla. Esto podría ser útil en un contexto de
ciberseguridad. Por ejemplo, si se almacenan identificadores de software en una tupla para
garantizar que no serán alterados, esto puede brindar la certeza de que una lista de control de
acceso solo bloqueará el software previsto.

La sintaxis de una tupla también es diferente de la de una lista. Una tupla se coloca entre
paréntesis en lugar de entre corchetes. A continuación, verás ejemplos de tuplas:

• ("wjaffrey", "arutley", "dkot")

• (46, 2, 13, 2, 8, 0, 0)

• (True, False, True, True)

• ("wjaffrey", 13, True)

Página 41 de 117
Consejo profesional: Las tuplas son más eficientes en cuanto a memoria que las listas, por lo
cual resultan útiles cuando se trabaja con una gran cantidad de datos.

Diccionario

Un diccionario consiste en una o más parejas clave-valor. Cada clave se asigna a un valor. Entre
la clave y el valor se intercalan dos puntos (:). Las comas separan las parejas clave-valor de otras
parejas clave-valor, y el diccionario se coloca entre llaves ({}).

Los diccionarios son útiles para almacenar y recuperar datos de forma predecible. Por ejemplo,
el siguiente diccionario asigna un nombre de un edificio a un número. El nombre del edificio es
el valor y el número es la clave. Después de la clave se colocan dos puntos.

{ 1: "East",

2: "West",

3: "North",

4: "South" }

Conjunto

En Python, un conjunto es una colección desordenada de valores únicos. Esto significa que no
puede haber dos valores iguales en un conjunto.

Los elementos de un conjunto siempre se colocan entre llaves y se separan con una coma. Estos
elementos pueden ser de cualquier tipo de datos. Este ejemplo de conjunto contiene cadenas
de nombres de usuario:

{"jlanksy", "drosas", "nmason"}

Conclusiones clave

Es importante que los analistas de seguridad que programan en Python estén familiarizados con
los distintos tipos de datos. Los tipos de datos con los que trabajarás en este curso son cadena,
lista, entero, float y booleano. Otros tipos de datos adicionales son tupla, diccionario y conjunto.
Cada uno tiene su propio propósito y sintaxis.

Página 42 de 117
3.3 Trabaja con variables en Python

Antes, comparamos tipos de datos con categorías de ingredientes, como verduras o carne, al
cocinar. Algunas categorías de tipos de datos son de cadena, float, enteros, booleanos y de lista.
Hagamos otra comparación. En la cocina, también usamos recipientes. Estos pueden contener
una gran variedad de cosas. Después de una comida, un recipiente podría contener arroz, y
después de otra, podría contener otro alimento, como pasta.

De manera similar, en Python tenemos variables. Una variable es un contenedor que almacena
datos. Para crear una variable, se necesita nombrarla. Luego se agrega un signo de igual y un
objeto para almacenar en ella. Crear una variable suele denominarse asignación. La mejor
práctica para nombrar variables es hacer que los nombres sean relevantes para lo que se están
utilizando.

Vamos a usar una variable para almacenar un ID de dispositivo. Nombraremos nuestra variable
device_id.

Agregamos el signo = y luego le asignamos el valor h32rb17.

Dado que el tipo de datos para esta variable es una cadena, pondremos ese valor entre comillas.

Ejecutemos el código. La variable ahora queda guardada en Python. El propósito de crear


variables es usarlas más adelante en el código. Se dice también que las variables se “llaman”.
Para llamar a una variable, se escribe su nombre. Así se le indica a Python que use el objeto que
la variable contiene. Agreguemos al código que escribimos y llamemos a una variable.
Indiquémosle que imprima la variable. Para ello, usamos la función print y le pedimos que
imprima el valor que contiene la variable device_id. Al usar una variable en la función print, no
se usan comillas.

Esta vez, algo sucede al ejecutarla. Python imprime h32rb17 en la pantalla. Agreguemos una
línea más para ver la diferencia entre imprimir una variable e imprimir una cadena. Le pedimos

Página 43 de 117
a Python que imprima una cadena con otro ID de dispositivo, m50pi31. Como estos son datos
de cadena y no de una variable, los ponemos entre comillas. Ahora ejecutemos el código y
veamos los resultados.

Ejecuta ambas sentencias print. La primera lee la variable e imprime el valor que contiene:
h32rb17.

La segunda lee la cadena especificada e imprime m50pi31.

Pero si podemos usar la cadena directamente, ¿por qué necesitamos variables? Solemos usar
variables para simplificar nuestro código o hacerlo más fácil de leer. O, si necesitáramos una
cadena o número muy largo, almacenarlo en una variable nos permitirá usarlo en todo nuestro
código sin tener que escribirlo todo. En el ejemplo anterior, la variable almacenaba datos de
cadena, pero las variables pueden almacenar varios tipos de datos. Las variables tienen el tipo
de datos del objeto que las está almacenando. Si no conoces el tipo de datos almacenado en
una variable, puedes usar la función type. La función type devuelve el tipo de datos de su
entrada.

Usemos la función type en Python. Primero creamos nuestra variable.

Luego agregamos una línea de código que incluye la función type.

Esta línea le indica a Python que nos diga el tipo de datos de la variable device_id

y que lo asigne a una nueva variable llamada data_type.

Después, podemos imprimir la variable data_type en la pantalla.

¡Perfecto! Python nos indica que el valor de device_id es una cadena.

Página 44 de 117
Al trabajar con variables, es importante conocer sus tipos de datos. Si no, puedes tener un error
de tipo. Un error de tipo ocurre al usar el tipo de datos incorrecto. Por ejemplo, si intentas sumar
un número y una cadena, obtendrás un error de tipo porque Python no puede combinar esos
tipos de datos. Solo puede agregar dos cadenas o dos números. Veamos un error de tipo.

Primero, usamos la variable device_id que almacena un valor de cadena.

Luego creamos otra variable llamada number y le asignamos un valor entero.

Agregamos una sentencia print que genera la suma de estas variables.

Luego ejecutamos.

Nos sale un error porque no se puede sumar una cadena con un número. Veamos un tema más
sobre las variables. Antes mencionamos que las variables son como contenedores. Lo que
contienen puede cambiar. Tras definir una variable, podemos cambiar el objeto que contiene.
Esto se llama reasignación. Reasignar una variable es muy similar a asignar. Probémoslo,
reasignemos una variable.

Primero asignamos la cadena h32rb17 a la variable device_id. También incluiremos una línea de
código para imprimir esta variable.

Ahora reasignemos la variable. Escribimos el nombre de esta variable, agregamos el signo = y


luego el nuevo objeto. En este caso, usaremos la cadena n73ab07 para la variable device_id.

También le indicaremos a Python que vuelva a imprimir la variable. Veamos qué sucede cuando
ejecutamos esto.

Página 45 de 117
Python imprime dos líneas de salida. La primera sentencia print se ejecutó antes de la
reasignación, así que primero imprime la cadena h32rb17. Pero la segunda sentencia print se
ejecutó después de que cambiara.

Es por eso que la segunda salida en la pantalla es la cadena n73ab07. Con este código,
reasignamos una variable con un valor de cadena a otro valor de cadena. Pero también podemos
reasignar una variable con un valor de otro tipo. Por ejemplo, podemos reasignar una variable
con valor de cadena a un valor entero. Las variables son esenciales en Python. A medida que
avanzamos en el curso, te familiarizarás más con ellas.

3.4 Asigna y reasigna variables en Python

Anteriormente, exploraste las variables y cómo asignarlas y reasignarlas en Python. En esta


lectura, ampliarás tu comprensión sobre estos temas. También, aprenderás sobre la práctica
general de nombrar variables para evitar errores de sintaxis y mejorar la legibilidad del código.

¿Qué son las variables?

En un lenguaje de programación, una variable es un contenedor que almacena datos. Es una


ubicación de almacenamiento con nombre en la memoria de una computadora que puede
contener un valor. Almacena los datos en un tipo de dato específico, como entero, cadena o
booleano. El valor que se almacena en una variable puede cambiar.

Puedes pensar en las variables como cajas con etiquetas. Aunque cambies el contenido de una
caja, su etiqueta permanece igual. De manera similar, cuando cambias el valor almacenado en
una variable, el nombre de esta sigue siendo el mismo.

Los analistas de seguridad que trabajan en Python utilizarán distintas variables. Algunos
ejemplos incluyen variables para intentos de inicio de sección, listas de permisos y direcciones.

Página 46 de 117
Trabajar con variables

En Python, es importante saber cómo asignar variables y cómo reasignarlas.

Asignación y reasignación de variables

Si deseas crear una variable llamada username y asignarle un valor de "nzhao", coloca la
variable a la izquierda del signo igual y su valor a la derecha:

Si luego restableces este nombre de usuario a "zhao2", seguirás refiriéndote a ese contenedor
de variable como username.

Aunque el contenido haya cambiado de "nzhao" a "zhao2", la variable username seguirá siendo
la misma.

Nota: Debes colocar "nzhao" y "zhao2" entre comillas porque son cadenas. Python asigna
automáticamente a una variable su tipo de datos cuando se ejecuta. Por ejemplo, cuando la
variable username contiene la cadena "nzhao", se le asigna un tipo de datos de cadena.

Asignar variables a otras variables

Mediante un proceso similar, también puedes asignar variables a otras variables. En el siguiente
ejemplo, la variable username se asigna a una nueva variable old_username:

Como username contiene el valor de cadena de "nzhao" y old_username contiene el valor de


username, old_username ahora contiene el valor de "nzhao".

Página 47 de 117
Combinar todo

El siguiente código demuestra cómo se puede actualizar un nombre de usuario. A la variable


username se le asigna un valor inicial, el cual luego se almacena en una segunda variable
llamada old_username. Después de esto, a la variable username se le reasigna un nuevo valor.
Puedes ejecutar este código para obtener un mensaje sobre el nombre de usuario anterior y el
nombre de usuario actual:

Prácticas recomendadas para nombrar variables

Puedes nombrar una variable casi como quieras, pero hay algunas pautas que debes seguir para
asegurar una sintaxis correcta y evitar errores:

• Usa solo letras, números y guiones bajos en los nombres de las variables. Ejemplos válidos:
date_3, username, interval2

• Comienza el nombre de una variable con una letra o un guion bajo. No empieces con un
número. Ejemplos válidos: time, _login

• Recuerda que los nombres de variables en Python distinguen entre mayúsculas y


minúsculas. Todas estas son variables diferentes: time, Time, TIME, timE.

• No utilices las palabras clave o funciones integradas de Python para nombres de variables.
Por ejemplo, las variables no deben llamarse True, False, o if.

Además, debes seguir estas pautas de estilo para que tu código sea más fácil de leer y
comprender:

• Separa dos o más palabras con guiones bajos. Ejemplos válidos: login_attempts,
invalid_user, status_update

Página 48 de 117
• Evita variables con nombres similares. Estas variables podrían confundirse fácilmente entre
sí: start_time, starting_time, time_starting.

• Evita nombres innecesariamente largos para las variables. Por ejemplo, no des a las
variables nombres como variable_that_equals_3.

• Los nombres deben describir los datos y no ser palabras aleatorias. Ejemplos válidos:
num_login_attempts, device_id, invalid_usernames

Nota: Se recomienda usar guiones bajos para separar varias palabras en las variables, pero otra
convención que puedes encontrar es escribir con mayúscula la primera letra de cada palabra,
excepto la primera palabra. Ejemplo: loginAttempt

Conclusiones clave

Es importante que los analistas de seguridad conozcan muy bien las variables. Estas actúan
como contenedores de datos. Se les asignan valores y también se les puede reasignar otros
valores o variables. Recordar las mejores prácticas para nombrar variables resulta muy útil para
crear un código más funcional y fácilmente legible.

3.5 Actividad: Asigna variables de Python

Instrucciones:

En esta actividad, abrirás un entorno de cuaderno para poner en práctica la asignación de


valores a variables en Python. Se te presentará un escenario de seguridad que explorarás a lo
largo del lab. Crearás variables para llevar un registro de la información relevante para el inicio
de sesión de los usuarios autorizados en un dispositivo específico.

Lo que podrás hacer después de este lab:

• Asignar variables de varios tipos de datos.

• Usar la función type() para devolver el tipo de datos de una variable.

Al completar el lab, ten en cuenta las siguientes funcionalidades:

• Tareas: Las instrucciones paso a paso en cada tarea te guiarán a través del lab.

• Preguntas: Las preguntas de reflexión te ayudarán a hacer una pausa para revisar los
conceptos y analizar resultado a medida que avanzas a través del lab.

Página 49 de 117
• Pistas: Las pistas ocultas proporcionan sugerencias opcionales que puedes tener en cuenta
para completar tu trabajo.

Debes completar este lab antes de continuar. En el siguiente elemento del curso, se revisará el
ejemplo de un lab terminado. Puedes comparar las respuestas de código y texto en el ejemplo
con las tuyas.

Actividad: Asignación de variables de Python

Introducción

Las variables ayudan a los analistas de seguridad a realizar un seguimiento de una variedad de
información relacionada con la seguridad. Por ejemplo, es posible que un analista tenga que
crear variables de Python para los usuarios a los que se les permite iniciar sesión, cuántos
intentos de inicio de sesión tienen en total y la cantidad actual de veces que intentaron iniciar
sesión.

En este laboratorio, practicarás cómo asignar valores a variables y determinar sus tipos de datos.

Consejos para completar este laboratorio

Situación hipotética

Eres un analista de seguridad y tienes la responsabilidad de escribir código que automatice el


análisis de los intentos de inicio de sesión realizados en un dispositivo específico. Como primer
paso, deberás crear variables para realizar un seguimiento de la información relevante para el
proceso de inicio de sesión. Esta información incluye el ID del dispositivo, la lista de nombres de
usuario aprobados, los intentos de inicio de sesión máximos permitidos por usuario, los intentos
de inicio de sesión actuales realizados por un usuario y el estado de inicio de sesión.

A lo largo de este laboratorio, asignarás estas variables y verificarás los tipos de datos de estas.

Tarea 1

Imagina que, en tu trabajo como analista, hay un dispositivo al que solo pueden acceder los
usuarios especificados en una lista de permisos y que el ID del dispositivo es "72e08x0".

En la siguiente celda de código, asigna este valor a una variable llamada id_dispositivo. Luego,
muestra el contenido de la variable y observa el resultado.

Página 50 de 117
Asegúrate de reemplazar cada ## TU CÓDIGO AQUÍ ### con tu propio código antes de ejecutar
la siguiente celda.

Tarea 2

Ahora que la variable id_dispositivo está definida, puedes devolver el tipo de dato al que se
refiere.

En esta tarea, usa una función de Python para encontrar el tipo de dato de la
variable id_dispositivo. Luego, almacena el tipo de dato en otra variable
llamada tipo_id_dispositivo y muéstralo para observar el resultado.

Asegúrate de reemplazar cada ## TU CÓDIGO AQUÍ ### con tu propio código antes de ejecutar
la siguiente celda.

Página 51 de 117
Pregunta 1

A partir del resultado anterior, ¿qué observas acerca del tipo de dato de id_dispositivo?

Se puede observar que el tipo de dato almacenado en la variable id_dispositivo es str o sea un
string o cadena de caracteres.

Tarea 3

A medida que continúas con tu trabajo, te dan una lista de nombres de usuario de los usuarios
que tienen permitido acceder al dispositivo. Los nombres de usuario con este acceso
son "madebowa", "jnguyen", "tbecker", "nhersh" y "redwards".

Para esta tarea, crea una variable llamada lista_usuarios. Luego, crea una lista con los nombres
de usuario aprobados y asígnala a esta variable.

Asegúrate de reemplazar cada ## TU CÓDIGO AQUÍ ### con tu propio código antes de ejecutar
la siguiente celda.

Página 52 de 117
Tarea 4

Para esta tarea, busca el tipo de dato de lista_usuarios. Almacena el tipo en una variable
llamada tipo_lista_usuarios y muéstralo para observar el resultado.

Asegúrate de reemplazar cada ## TU CÓDIGO AQUÍ ### con tu propio código antes de ejecutar
la siguiente celda.

Página 53 de 117
Pregunta 2

A partir del resultado anterior, ¿qué observas acerca del tipo de dato de lista_usuarios?

Se observa que el tipo de dato arrojado por la variable es de tipo Lista

Tarea 5

Ahora, supongamos que te avisan de que la lista anterior no está actualizada y de que hay otro
empleado que ahora tiene acceso al dispositivo. Te dan la siguiente lista actualizada de nombres
de usuario con acceso, incluido el empleado
nuevo: "madebowa", "jnguyen", "tbecker", "nhersh", "redwards" y "lpope".

Para esta tarea, reasigna la lista nueva a la variable lista_usuarios. Ejecuta el código para mostrar
la lista antes y después de la actualización para observar la diferencia.

Asegúrate de reemplazar cada ## TU CÓDIGO AQUÍ ### con tu propio código antes de ejecutar
la siguiente celda.

Pregunta 3

Se puede observar que la lista fue actualizada con el nuevo usuario que se ingresó.

Página 54 de 117
Tarea 6

Para esta tarea, define una variable llamada max_inicios_sesion que represente el número
máximo de intentos de inicio de sesión permitidos por usuario. Almacena el valor 3 en esta
variable. Luego, almacena el tipo de dato en otra variable llamada tipo_max_inicios_sesion y
muéstralo para observar el resultado.

Asegúrate de reemplazar cada ## TU CÓDIGO AQUÍ ### con tu propio código antes de ejecutar
la siguiente celda.

Pregunta 4

A partir del resultado anterior, ¿qué observas acerca del tipo de dato de max_inicios_sesion?

Se observa que es un valor de tipo int o sea Entero.

Tarea 7

En esta tarea, define una variable llamada intentos_inicio_sesion que represente el número
actual de intentos de inicio de sesión realizados por un usuario. Almacena el valor 2 en esta

Página 55 de 117
variable. Luego, almacena el tipo de dato en una variable llamada tipo_intentos_inicio_sesion y
muéstralo para observar el resultado.

Asegúrate de reemplazar cada ## TU CÓDIGO AQUÍ ### con tu propio código antes de ejecutar
la siguiente celda.

Pregunta 5

A partir del resultado anterior, ¿qué observas acerca del tipo de dato
de tipo_intentos_inicio_sesion?

Se observa que el tipo de datos es un valor int esto quiere decir que el valor almacenado es
entero.

Página 56 de 117
Tarea 8

En esta tarea, determinarás el valor booleano que representa si el número actual de intentos
de inicio de sesión que realizó un usuario es menor o igual al número máximo de intentos de
inicio de sesión permitidos.

Asegúrate de reemplazar cada ## TU CÓDIGO AQUÍ ### con tu propio código antes de ejecutar
la siguiente celda.

Pregunta 6

¿Cuál es el resultado? ¿Qué significa esto?

Arroja como resultado True, esto significa que la comparación entre los dos valores es
verdadera.

Tarea 9

Este código continúa verificando el valor booleano de si max_inicios_sesion es menor o igual


que intentos_inicio_sesion. En esta tarea, reasigna otros valores a intentos_inicio_sesion.
Observa cómo cambia el resultado.

Página 57 de 117
Asegúrate de reemplazar cada ## TU CÓDIGO AQUÍ ### con tu propio código antes de ejecutar
la siguiente celda.

Pregunta 7

A partir de los diferentes valores que asignaste a intentos_inicio_sesion, ¿qué observaste


acerca del resultado?

Se observa que ahora el valor arrojado es False, esto significa que el usuario se excedió en los
intentos de inicio de sesión.

Tarea 10

Por último, también puedes asignar un valor booleano de Verdadero o Falso a una variable.

En esta tarea, crearás una variable llamada estado_inicio_sesion, que es un valor booleano que
representa si un usuario está conectado. Asigna Falso a esta variable, almacena el tipo de dato
en una variable llamada tipo_estado_inicio_sesion y muéstrala.

Asegúrate de reemplazar cada ## TU CÓDIGO AQUÍ ### con tu propio código antes de ejecutar
la siguiente celda.

Página 58 de 117
Pregunta 8

A partir del resultado anterior, ¿qué observas acerca del tipo de dato
de estado_inicio_sesion?

Se observa que el tipo de dato es bool, significa que es booleano

Conclusión

¿Qué conclusiones clave obtuviste de este laboratorio?

Se evidencia lo practico que es este lenguaje de programación, solo decir que si hay que estar
concentrado para ir adquiriendo buena practica de este lenguaje tan versátil.

3.6 Ejemplo: Asigna variables de Python

Instrucciones:

Aquí tienes un ejemplo completo del lab.

Compara el código y las respuestas de texto en el ejemplo con el lab que completaste. ¿En qué
se diferencian? Usa las respuestas a estas preguntas para guiarte a medida que avanzas en el
curso.

Página 59 de 117
3.7 Pon a prueba tus conocimientos: Componentes básicos de Python

Página 60 de 117
Página 61 de 117
4. SENTENCIAS CONDICIONALES E ITERATIVAS
4.1 Sentencias condicionales en Python

Antes hablamos sobre cómo almacenar distintos tipos de datos en variables. Ahora vamos a
empezar a adentrarnos en el concepto de automatización para crear acciones emocionantes
con código. Automatizar es usar tecnología para reducir la actividad humana y manual destinada
a tareas comunes y repetitivas. Permite que las computadoras realicen estas tareas por nosotros
para que podamos dedicar más tiempo a otras actividades. Las sentencias condicionales son
importantes en la automatización. Una sentencia condicional es una sentencia que evalúa el
código para determinar si cumple un conjunto específico de condiciones. La palabra clave “if” es
importante aquí. La palabra “if” empieza una sentencia condicional.

Luego indicamos la condición que debe cumplirse y qué pasa si se cumple. Usamos sentencias
if a diario. Por ejemplo, si hace frío afuera, nos abrigamos. O si está lloviendo, salimos con
paraguas. Las sentencias if se estructuran con la condición que queremos evaluar y la acción
que Python realizará si se cumple la condición.

Página 62 de 117
Python siempre evalúa si la condición es verdadera o falsa. Si es verdadera, realiza la acción
específica. Veamos un ejemplo. Le pedimos a Python que imprima el mensaje “Account locked”
cuando el inicio de sesión falle más de cinco veces. La palabra clave if le indica a Python que
empiece una sentencia condicional.

Después, indicamos la condición que queremos verificar.

En este caso, verificamos si el usuario ha intentado iniciar sesión más de cinco veces. Observa
que usamos una variable llamada failed_attempts. En el código completo, habremos asignado
un valor a la variable antes de la sentencia if. Después de esta condición, siempre colocamos
dos puntos. Estos indican que lo que sigue es lo que queremos que suceda si se cumple la
condición. En este caso, si el usuario tiene más de cinco intentos fallidos, imprime el mensaje
“Account locked”, o cuenta bloqueada.

En Python, este mensaje siempre debe tener sangría con al menos un espacio para ejecutarse
solo si la condición es verdadera.

Esta primera línea suele denominarse encabezado. Y la llamada a las acciones que pasan si la
condición se cumple, el cuerpo.

Página 63 de 117
Esta condición se basó en una variable siendo mayor que un número específico, pero podemos
definir nuestra condición usando una variedad de operadores. Por ejemplo, también podemos
verificar si algo es “menor que” un valor indicado, o podemos ver si es “mayor o igual que”, o
bien “menor o igual que” lo que indiquemos. También podemos comparar si algo es “igual a”
un valor. Al hacer esto en una condicional, necesitamos usar una sintaxis especial. No es un solo
signo de igual, sino un doble signo de igual. El signo de doble igual se suele usar en sentencias
condicionales. El signo == evalúa si dos objetos coinciden. Asigna el valor booleano true, si
coinciden o false, si no coinciden.

Hay un operador más que debemos ver. Un signo de exclamación con un signo de igual es “no
igual a”. !=

Este operador para “no igual a” evalúa si dos objetos son diferentes. Asigna el valor booleano
true si no coinciden y false si coinciden.

Analicemos un ejemplo con el signo ==. Nos centraremos en un ejemplo que imprime el mensaje
“Updates needed” cuando se está ejecutando un sistema operativo determinado. Aquí creamos
una condición que verifica si el SO de un dispositivo coincide con una cadena específica que
identifica el SO.

Para hacer esto, tendremos que usar el signo == en la condición. Si coincide, el programa
imprimirá el mensaje “Updates needed”.

La variable operating_system está a la izquierda del signo ==. La cadena “OS 2” está a la derecha.

Si la condición se evalúa como true, realiza la acción sangrada en la siguiente línea de código.
Aquí, si operating_system es OS 2, se imprimirá el mensaje “Updates needed”. Si no lo es, el
mensaje no se imprimirá.

Página 64 de 117
Observa que esta línea tiene sangría. Esto le indica a Python que la tarea depende de si el
resultado es true.

Escribamos un código que incorpore esta condicional y obtengamos los resultados.

Antes de escribirla, asignamos un valor a la variable operating_system. El valor que indicaremos


será el mismo SO que buscaremos en la condicional.

Luego escribimos la condición de la sentencia if y usamos el signo == para verificar si la variable


operating_system equivale a OS 2.

Escribimos la acción que se ejecutará si la condición de la línea anterior se evalúa como true. Le
indicamos a Python que imprima el mensaje “Updates needed”. Definimos la variable
operating_system como OS 2, así que la sentencia print se ejecutará. Muy bien, ejecutemos el
código.

Como era de esperar, se imprimió “updates needed” porque el valor asignado a la variable
operating_system era igual a OS 2.

A veces, queremos que la sentencia condicional ejecute otro grupo de instrucciones si no se


cumple la primera condición. En el ejemplo, si no es true, significa que el SO del dispositivo no
es OS 2.

Debemos agregar la palabra clave “else” a las sentencias condicionales aquí. La palabra “else”
precede a una sección de código que solo evalúa si todas las condiciones precedentes en la
sentencia condicional son false.

Las sentencias else siempre siguen una sentencia if y terminan con dos puntos. Usemos la
condicional anterior y agreguémosle una sentencia else. Incluimos la misma sentencia if, pero
esta vez el valor de la variable operating_system es otro sistema operativo, en este caso, OS 3.

Página 65 de 117
Como esto no coincide con el valor de la condición de la sentencia if, no se imprime el mensaje
“updates needed”.

Pero podemos agregar una sentencia else e indicarle que haga otra cosa. Escribimos la palabra
clave else y dos puntos. Luego sangramos la siguiente línea e indicamos que imprima el mensaje
“No updates needed”. Al ejecutar este código, se procesa la sentencia else después de la if.

Como la sentencia if se evalúa como false, pasará a la sentencia else.

Probemos.

Como se esperaba, solo se imprime el mensaje “No updates needed”.

¡Buen trabajo! Vimos cómo usar if y cómo usar else. Con las sentencias condicionales,
incorporas lógica al código.

4.2 Más sobre los condicionales en Python

Anteriormente, exploraste las sentencias condicionales y su utilidad en la automatización de


tareas en Python. Hasta ahora, te centraste en las palabras clave if y else. En esta lección, las
repasarás y aprenderás otra palabra clave, elif. También, aprenderás cómo puedes aplicar los
operadores and, or, y not a tus condiciones.

Cómo funcionan las sentencias condicionales

Una sentencia condicional es una sentencia que evalúa código para determinar si cumple con
un conjunto específico de condiciones. Cuando una condición se cumple, se evalúa como un
valor booleano True (verdadero) y realiza las acciones especificadas. Cuando la condición no se
cumple, se evalúa como un valor booleano False (falso) y no realiza las acciones especificadas.

Página 66 de 117
En las sentencias condicionales, la condición suele basarse en la comparación de dos valores.
Esta tabla resume los operadores de comparación más comunes utilizados para comparar

Nota: Los operadores igual a (==) y no igual que (!=) también se usan habitualmente para
comparar datos de cadena.

Sentencias if

La palabra clave if inicia una sentencia condicional. Es un componente necesario de cualquier


sentencia condicional. En el siguiente ejemplo, if comienza una sentencia que le indica a Python
que imprima el mensaje "OK" cuando el código de estado de la respuesta HTTP sea igual a 200:

Este código consiste en un encabezado y un cuerpo.

Encabezado de una sentencia if

La primera línea de este código es el encabezado. En el encabezado de una sentencia if, la


palabra clave if va seguida de la condición. Aquí, la condición es que la variable status sea igual
a un valor de 200. La condición se puede colocar entre paréntesis:

Página 67 de 117
En casos como este, es opcional colocar paréntesis alrededor de las condiciones en Python.
Puedes optar por incluirlos si te ayuda a mejorar la legibilidad del código. Sin embargo, esta
condición será procesada de la misma manera si se escribe sin paréntesis.

En otras situaciones, debido a que Python evalúa primero las condiciones entre paréntesis, estos
pueden afectar la manera en que Python procesa las condiciones. Leerás más sobre estos casos
en la sección de esta lectura sobre not.

Nota: Siempre debes colocar dos puntos (:) al final del encabezado. Sin esta sintaxis, el código
generará un error.

Cuerpo de una sentencia if

Después del encabezado de una sentencia if, viene el cuerpo de la sentencia if. Esto le indica a
Python qué acción o acciones realizar cuando la condición se evalúa como True. En este ejemplo,
hay solo una acción, que consiste en imprimir "OK" en la pantalla. En otros casos, puede haber
más líneas de código con acciones adicionales.

Nota: Para que el cuerpo de la sentencia if se ejecute según lo previsto, debe tener más sangría
que el encabezado. Además, si hay varias líneas de código dentro del cuerpo, todas deben tener
la misma sangría.

Condicionales continuos con else y elif

En el ejemplo anterior, si el código de respuesta de estado HTTP no fuera igual a 200, la


condición se evaluaría como False y Python continuaría con el resto del programa. Sin embargo,
también es posible especificar acciones alternativas con else y elif.

Sentencias else

La palabra clave else precede a una sección de código que solo se evalúa cuando todas las
condiciones que la preceden dentro de la sentencia condicional se evalúan como False.

Página 68 de 117
En el siguiente ejemplo, cuando el código de estado de respuesta HTTP no es igual a 200,
imprime un mensaje alternativo de "check other status":

Nota: Al igual que con if, se requieren dos puntos (:) después de else, y el cuerpo que sigue al
encabezado else está sangrado (o sea, tiene sangría).

Sentencias elif

En ocasiones, es posible que tengas varias acciones alternativas que dependen de nuevas
condiciones. En ese caso, puedes usar elif. La palabra clave elif precede a una condición que
solo se evalúa cuando las condiciones anteriores se evalúan como False. A diferencia de else,
puede haber varias sentencias elif después de if.

Por ejemplo, puedes optar por imprimir un mensaje si el código de estado de respuesta HTTP
es 200, un mensaje si es 400 y otro si es 500. El siguiente código demuestra cómo puedes utilizar
elif para esto:

Página 69 de 117
Python verificará primero si el valor de status es 200, y si se evalúa como False, pasará a la
primera sentencia elif. Allí, verificará si el valor de status es 400. Si es True, imprimirá "Bad
Request", pero si es False, pasará a la siguiente sentencia elif.

Si deseas que el código imprima otro mensaje cuando todas las condiciones se evalúen como
False, puedes incorporar else después del último elif. En este ejemplo, si llega a la sentencia
else, imprime un mensaje para verificar el estado:

Al igual que con if y else, es importante colocar dos puntos (:) después del encabezado elif y
sangrar el código que sigue a este encabezado.

Nota: Python procesa varias sentencias elif de manera diferente a varias sentencias if. Cuando
llega a una sentencia elif que se evalúa como True, no verificará las siguientes sentencias elif.
Por otro lado, Python ejecutará todas las sentencias if.

Operadores lógicos para múltiples condiciones

En algunos casos, puedes optar por que Python realice una acción basada en una condición más
compleja. Podrías requerir que dos condiciones se evalúen como True. O bien, que solo una de
las dos condiciones se evalúe como True. O puedes optar por que Python ejecute una acción
cuando una condición se evalúe como False. En estos casos se pueden utilizar los operadores
and, or, y not.

Página 70 de 117
and

El operador and requiere que las dos condiciones a ambos lados del operador se evalúen como
True. Por ejemplo, todos los códigos de estado de respuesta HTTP entre 200 y 226 se refieren a
respuestas correctas. Puedes usar and para unir una condición que sea mayor o igual a 200 con
otra condición que sea menor o igual a 226:

Si ambas condiciones son True, se imprimirá el mensaje "successful response".

or

El operador or solo requiere que una de las condiciones a ambos lados del operador se evalúe
como True. Por ejemplo, tanto un código de estado 100 como un código de estado 102 son
respuestas informativas. Usando or, podrías pedirle a Python que imprima un mensaje de
"informational response" cuando el código sea 100 o 102:

Solo es necesario que se cumpla una de estas condiciones para que Python imprima el mensaje.

not

El operador not niega una condición dada de forma que se evalúe a False si la condición es True
y a True si es False. Por ejemplo, si deseas indicar que Python debe verificar el código de estado
cuando se trata de algo fuera del rango correcto, puedes usar not:

Python primero verifica si el valor de estado es mayor o igual a 200 y menor o igual a 226, y
luego, debido al operador not, lo invierte. Esto significa que imprimirá el mensaje si status es
menor que 200 o mayor que 226.

Página 71 de 117
Nota: En este caso, los paréntesis son necesarios para que el código aplique not a ambas
condiciones. Python evaluará primero las condiciones dentro de los paréntesis. Esto significa que
primero evaluará las condiciones a cada lado del operador and y luego aplicará not a ambas.

Conclusiones clave

Es importante que los analistas de seguridad se familiaricen con las sentencias condicionales.
Estas requieren la palabra clave if. Además, puedes usar else y elif cuando trabajes con
condicionales para especificar acciones adicionales. Los operadores lógicos and, or, y not
también son útiles al escribir condicionales.

4.3 Actividad: Crea una sentencia condicional

Instrucciones:

En este lab, abrirás un entorno de cuaderno para practicar la escritura de sentencias


condicionales en Python. Se te presentará una situación de seguridad para explorar en todo el
lab. Practicarás la aplicación de sentencias condicionales para automatizar procesos en toda una
organización.

Lo que podrás hacer después de este lab:

• Escribir código que determine si el sistema operativo de un usuario requiere una


actualización.

• Escribir código que determine si los intentos de inicio de sesión fueron realizados por
usuarios autorizados y si los intentos de inicio de sesión ocurrieron durante el horario
laboral de la organización.

Al completar el lab, ten en cuenta las siguientes funcionalidades:

• Tareas: Las instrucciones paso a paso en cada tarea te guiarán a través del lab.

• Preguntas: Las preguntas de reflexión te ayudarán a hacer una pausa para revisar los
conceptos y analizar tu resultado a medida que avanzas a través del lab.

• Pistas: Las pistas ocultas proporcionan sugerencias opcionales que puedes tener en cuenta
para completar tu trabajo.

Página 72 de 117
Debes completar este lab antes de continuar. En el siguiente elemento del curso, se revisará el
ejemplo de un lab terminado. Puedes comparar las respuestas de código y texto en el ejemplo
con las tuyas.

Actividad: Crea una sentencia condicional

Introducción

Las sentencias condicionales son una estructura poderosa que ayuda a lograr la automatización
cuando necesitas asegurarte de que se cumplan las condiciones antes de ejecutar ciertas
acciones. Por ejemplo, los analistas de seguridad pueden usar sentencias condicionales en
Python para verificar si los usuarios están autorizados a acceder a un dispositivo.

En este laboratorio, practicarás escribiendo sentencias condicionales en Python.

Consejos para completar este laboratorio

Situación hipotética

Trabajas como analista de seguridad. En primer lugar, eres responsable de comprobar si el


sistema operativo de un usuario requiere una actualización. A continuación, tienes que
investigar los intentos de inicio de sesión en un dispositivo específico. Debes determinar si los
intentos de inicio de sesión fueron realizados por usuarios autorizados para acceder a este
dispositivo y si dichos intentos se produjeron durante el horario de la organización.

Tarea 1

Se te pide que ayudes a automatizar el proceso de comprobar si el sistema operativo de un


usuario requiere una actualización. Imagina que el dispositivo de un usuario puede ejecutar uno
de los siguientes sistemas operativos: OS 1, OS 2 u OS 3. Mientras que OS 2 está actualizado, OS
1 y OS 3 no lo están. Tu tarea consiste en verificar si el sistema del usuario está actualizado y, si
lo está, mostrar un mensaje en consecuencia. Para ello, completa la sentencia condicional
usando la palabra clave if. Asegúrate de reemplazar el fragmento ### TU CÓDIGO AQUÍ ### con
tu propio código antes de ejecutar la siguiente celda.

Página 73 de 117
Tarea 2

Ahora prueba a asignar la variable system diferentes valores ("OS 1", "OS 2" y "OS 3"), ejecuta
la celda y observa qué ocurre. Mantén la sentencia condicional como está. Asegúrate de
reemplazar el fragmento ### TU CÓDIGO AQUÍ ### con tu propio código.

Pregunta 1

¿Qué sucede cuando OS 2 se está ejecutando? ¿Qué sucede cuando OS 1 se está ejecutando?

Cuando se ejecuta con un valor igual a OS 2 si aparece el mensaje, de lo contrario no aparece


el mensaje.

Página 74 de 117
Tarea 3

No se muestra nada cuando el system no es igual a "OS 2". Esto se debe a que la condición no
se evaluó como True.

Sería beneficioso si se les proporciona un mensaje alternativo cuando se necesitan realizar


actualizaciones.

En la siguiente celda, agrega la palabra clave apropiada después de la primera sentencia


condicional para que se muestre un mensaje que transmita que se necesita una actualización
cuando el system no está ejecutando OS 2. Asegúrate de reemplazar el fragmento ### TU
CÓDIGO AQUÍ ### con tu propio código.

A continuación, establece el valor de la variable system para indicar que OS 2 se está ejecutando
y ejecuta la celda. Después de observar lo que sucede, establece el valor de system para indicar
que OS 1 se está ejecutando o que OS 3 se está ejecutando y ejecuta la celda.

Pregunta 2

*En esta configuración, ¿qué sucede cuando OS 2 se está ejecutando? ¿Y qué ocurre cuando OS
2 no se está ejecutando? *

En la configuración cuando OS 2 se esta ejecutando, el sistema nos dirá que no es necesario


actualizar, en el caso contrario el sistema arrojará el mensaje que debe actualizar el sistema.

Página 75 de 117
Tarea 4

Esta configuración sigue sin ser la ideal. Si la variable system contiene una cadena aleatoria o un
entero, la sentencia condicional anterior seguiría mostrando es necesario actualizar.

Para mejorar la sentencia condicional, deberás agregar la palabra clave elif. En la siguiente
celda, agregarás dos sentencias elif después de la sentencia if, para crear el código final. La
primera sentencia elif mostrará es necesario actualizar si system es "OS 1". La segunda
sentencia elif mostrará el mismo mensaje, si system es "OS 3". Completa la segunda
instrucción elif y luego ejecuta la celda con la variable system ajustada a una cadena diferente
cada vez. Observa qué ocurre cuando se ejecuta cada sistema operativo. También prueba a
asignar la variable system otras cadenas distintas de "OS 1", "OS 2" y "OS 3" (por ejemplo, "OS
4").

Asegúrate de reemplazar el fragmento ### TU CÓDIGO AQUÍ ### con tu propio código.

Tarea 5

Escribir código legible y conciso es una de las mejores prácticas en programación.

La sentencia condicional anterior se puede escribir de forma más concisa.

Página 76 de 117
En la siguiente celda, usa un operador lógico para combinar las dos sentencias elif de la
configuración anterior en una sola sentencia elif. Asegúrate de reemplazar cada ### TU CÓDIGO
AQUÍ ###. A continuación, asigna un valor a la variable system y ejecuta la celda. Como hiciste
en la tarea anterior, usa "OS 1", "OS 2", "OS 3" y otras cadenas.

Pregunta 4

¿Qué observas en esta sentencia condicional?

Puedo observa mas claridad en la sentencia y de más fácil comprensión.

Tarea 6

Ahora pasarás a la siguiente parte de tu trabajo. Te han pedido que investigues los intentos de
inicio de sesión en un dispositivo específico. Solo los usuarios autorizados deben iniciar sesión
en este dispositivo.

Comenzarás con dos usuarios autorizados, almacenados en las


variables approved_user1 y approved_user2. Deberás escribir una sentencia condicional que
compare esas variables con una tercera variable, username. Este será el nombre de usuario de
un usuario específico que intenta iniciar sesión. Asegúrate de reemplazar el fragmento ### TU
CÓDIGO AQUÍ ### con tu propio código.

Página 77 de 117
Tarea 7

El número de usuarios autorizados se ha ampliado a cinco. En lugar de almacenar cada uno de


los nombres de usuario de los usuarios autorizados individualmente, sería más conciso
almacenarlos en una lista de permisos llamada approved_list.

El operador in de Python se puede usar para determinar si un valor dado es un elemento de una
secuencia. Usar el operador in en una condición puede ayudarte a verificar si un nombre de
usuario específico forma parte de una lista de nombres de usuario autorizados. Por ejemplo, en
el siguiente código, username in approved_list se evalúa como True si el valor de la
variable username está incluido en approved_list.

Completa el código en la siguiente celda para mostrar los mismos mensajes que usaste en el
paso anterior. Cuando la condición se evalúa como True, se mostrará el siguiente mensaje: “Este
usuario tiene acceso a este dispositivo”. Cuando se evalúa como False, se mostrará el siguiente
mensaje: “Este usuario no tiene acceso a este dispositivo”.A continuación, ejecuta la celda para
observar su comportamiento. Asegúrate de reemplazar cada ### TU CÓDIGO AQUÍ ### con tu

Página 78 de 117
propio código. Después, reasigna la variable username a un nombre de usuario que no esté
autorizado y ejecuta la celda para observar lo que ocurre.

Pregunta 5

¿Qué ocurre cuando un usuario autorizado intenta iniciar sesión? ¿Qué ocurre cuando un
usuario no autorizado intenta iniciar sesión?

Si el usuario que intenta iniciar sesión se encuentra entre los usuarios autorizados, se mostrará
un mensaje indicando que está autorizado para acceder a este dispositivo

En caso contrario, se mostrará un mensaje indicando que no tiene acceso a este dispositivo

Tarea 8

Ahora escribirás otra sentencia condicional. Esta usará una variable organization_hours para
verificar si el usuario inició sesión durante horas específicas de la organización. Cuando se
cumpla esa condición, el código debe mostrar la cadena "Intento de inicio de sesión realizado
durante el horario de la organización".. Cuando no se cumpla esa condición, el código debe
mostrar la cadena "Intento de inicio de sesión realizado fuera del horario de la organización"..

La variable organization_hours tendrá un tipo de dato booleano. Si organization_hours tiene un


valor booleano True, significa que el usuario inició sesión durante el horario de la organización

Página 79 de 117
especificado. Si organization_hours tiene un valor booleano False, significa que el usuario no
inició sesión durante ese horario.

Completa la sentencia condicional en la siguiente celda. Asegúrate de reemplazar cada


fragmento ### TU CÓDIGO AQUÍ ### con tu propio código antes de ejecutar la siguiente celda.

Pregunta 6

¿Qué sucede cuando el usuario inicia sesión durante el horario de la organización? ¿Qué
sucede cuando inicia sesión fuera del horario de la organización?

Si el valor de `organization_hours` ingresado es True, se mostrará “Intento de inicio de sesión


realizado durante el horario de la organización”.

En caso contrario, se mostrará "Intento de inicio de sesión realizado fuera del horario de la
organización".

Tarea 9

La siguiente celda ensambla el código de las tareas anteriores. Incluye la sentencia condicional
que verifica si un usuario está en la lista de permisos y la sentencia condicional que verifica si el
usuario inició sesión durante el horario de la organización.

Página 80 de 117
Ejecuta la celda a continuación varias veces. Cada vez, ingresa una combinación diferente de
valores para username y organization_hours para observar cómo afecta a la salida.

Pregunta 7

¿Qué ocurre cuando el usuario que intenta iniciar sesión no se encuentra entre los usuarios
autorizados? ¿Qué ocurre cuando el usuario que intenta iniciar sesión se encuentra entre los
usuarios autorizados? ¿Qué ocurre cuando el usuario intenta iniciar sesión fuera del horario
de la organización?

Si el valor de `organization_hours` ingresado es True, se mostrará “Intento de inicio de sesión


realizado durante el horario de la organización”.

En caso contrario, se mostrará "Intento de inicio de sesión realizado fuera del horario de la
organización".

Página 81 de 117
Tarea 10

También puedes proporcionar un único mensaje sobre el intento de inicio de sesión. Para ello,
puedes unir ambas condiciones en una sola sentencia condicional utilizando un operador lógico.
Esto hará que el código sea más conciso.

Examina el código de la siguiente celda y agrega el operador que falta para que aparezca un
único mensaje. Asegúrate de reemplazar cada ### TU CÓDIGO AQUÍ ### con tu propio código
antes de ejecutar la siguiente celda. A continuación, ejecuta la celda, ingresando diferentes
combinaciones de información y observa lo que ocurre.

Pregunta 8

En esta configuración, ¿qué ocurre cuando el usuario que intenta iniciar sesión es un usuario
autorizado y lo hace durante el horario de la organización? ¿Qué sucede cuando el usuario no
está autorizado o intenta iniciar sesión fuera del horario de la organización?

Página 82 de 117
Conclusión

¿Qué conclusiones clave obtuviste de este laboratorio?

La manera de como se pueden utiliza los operadores y las sentencias condicionales de forma
fácil y comprensible.

4.4 Ejemplo: Crea una sentencia condicional

Instrucciones:

Aquí tienes un ejemplo completo del lab.

Compara el código y las respuestas de texto en el ejemplo con el lab que completaste. ¿En qué
se diferencian? Usa las respuestas a estas preguntas para guiarte a medida que avanzas en el
curso.

4.5 Bucles for

Aprendimos sobre las sentencias condicionales y cómo desarrollarlas para permitir que las
computadoras tomen decisiones. Pero a veces solo necesitamos que los programas cuenten o
hagan una tarea una y otra vez. Es normal que las personas perdamos la concentración y
gastemos energía en tareas tediosas.

Página 83 de 117
Para situaciones como estas, las computadoras son muy útiles. En este video, analizaremos
cómo las computadoras realizan tareas repetitivas mediante sentencias iterativas. Una
sentencia iterativa es código que ejecuta repetidamente un conjunto de instrucciones. Las
sentencias iterativas también se denominan bucles. Con un bucle podemos usar de forma
repetida una línea de código sin tener que escribirla varias veces. Antes de hablar de la sintaxis,
ejecutemos un bucle para ver qué sucede.

Este código imprimió todos los números de la lista con una sola sentencia print. Eso es un bucle.
Hay dos tipos de bucles que veremos, bucles for y bucles while. Acabamos de ejecutar un bucle
for y nos centraremos en ellos en este video. Más tarde exploraremos los bucles while.

Los bucles for repiten código de una secuencia específica. Un ejemplo de esto sería usar un
bucle para imprimir cada elemento de una lista.

Los bucles for empiezan con la palabra clave for. La palabra “for” indica el comienzo de un bucle
for. Como las sentencias condicionales, las sentencias iterativas constan de dos partes
principales. Las partes de un bucle son el encabezado y el cuerpo del bucle. Analicemos el bucle
for que ejecutamos y usémoslo para explorar estas partes. El encabezado del bucle es la línea
con la palabra clave for y que termina con dos puntos. Le indica a Python que inicie un bucle.
Consiste en la palabra clave for, una variable de bucle, y la secuencia que el bucle repetirá. La
variable de bucle se usa para controlar las iteraciones del bucle. La variable de bucle viene justo
después de for. Comúnmente se denomina “i”, pero puedes darle cualquier nombre. En los
bucles, esta variable temporal solo se utiliza dentro del bucle y no fuera de él en el resto del
código.

Página 84 de 117
La variable de bucle es seguida por el operador in y la secuencia a repetir.

En este ejemplo, la secuencia es una lista que contiene números del 1 al 4.

Ejecuta cada uno de estos números mediante una acción indicada. Debemos poner dos puntos
al final del encabezado del bucle para introducir este código. El cuerpo del bucle lo constituyen
las líneas con sangría tras el encabezado. Esto representa las acciones que se repiten mientras
el bucle itera. En este caso, se imprimirá cada número de la lista, primero 1, luego 2 y así
sucesivamente. Otro uso importante de los bucles es repetir un proceso específico una cantidad
determinada de veces. Para hacerlo, se combina la función range.

La función range genera una secuencia de números. Por ejemplo, range(0,10) genera una
secuencia que empieza desde 0, continúa con 1, 2 y así sucesivamente hasta 9. Al usar range, se
cuenta desde el número en la primera posición. En este caso, 0. Al llegar al número en la segunda
posición, nos indica dónde detenernos. Ese número se excluye. En este caso, como el número
es 10, la secuencia solo llega hasta el 9.

Hay un detalle importante sobre la función range: si no damos un punto de partida,


automáticamente empieza desde 0. El 10 representa el punto de parada. Como se excluye el
punto de parada, los números de la secuencia van del 0 al 9. Una secuencia del 0 al 9 itera 10
veces.

Ejecutemos un bucle for que incorpora la función range.

Usaremos range para indicarle a Python que repita una acción 10 veces. Luego indicaremos la
acción que queremos repetir. Esta acción imprimirá el mensaje de error “Cannot connect to the
destination”.

Ejecutemos este código.

Página 85 de 117
Con un bucle for con la función range, repetimos 10 veces el mismo mensaje de error, en lugar
de escribirlo una y otra vez. En este video, aprendimos sobre la sintaxis y estructura de las
sentencias iterativas, y trabajamos con bucles for como ejemplo. En el siguiente video, veremos
otro tipo de sentencia iterativa, el bucle while.

4.6 Bucles while

Antes presentamos las sentencias iterativas en Python y vimos los bucles. Una sentencia
iterativa es código que ejecuta de forma repetida un conjunto de instrucciones. En este video,
veremos otro tipo de sentencia iterativa: el bucle while. Al usar bucles for, el código ejecutado
repetidamente se basó en una secuencia indicada. Los bucles while se ejecutan repetidamente,
pero la repetición se basa en una condición. Siempre y cuando la condición sea verdadera, el
bucle continúa ejecutándose. Pero cuando es falsa, el bucle while se detiene. Por ejemplo, este
bucle while establece una condición que indica que la variable time debe ser menor o igual que
10. Esto significa que se ejecutará hasta que la variable time sea mayor que 10. Como el bucle
for, el bucle while tiene un encabezado. Contiene la palabra clave “while”, la condición y dos
puntos. El bucle while empieza con la palabra clave “while”. La palabra clave “while” señala el
comienzo de un bucle while y le sigue la condición que evalúa con un valor booleano veraderao
o true, o falso o false. La condición contiene la variable de bucle. Esta variable se usa para
controlar el número de iteraciones del bucle. Sin embargo, hay una importante distinción en las
variables usadas en bucles for y while. En los bucles while, la variable no se crea en la sentencia
del bucle. Antes de escribir el bucle while, hay que asignar la variable. Luego se puede hacer
referencia a ella en el bucle. Si se cumple la condición que contiene la variable de bucle, el bucle
itera. De lo contrario, el bucle se detiene. Esta condición será verdadera mientras la variable
time sea menor o igual que 10. Finalmente, el encabezado del bucle termina con dos puntos. Al

Página 86 de 117
igual que el bucle for, el bucle while tiene un cuerpo con sangría que consiste en las acciones a
realizar mientras el bucle itera. La intención de este código es imprimir el valor de una variable
que representa el tiempo y sumarle 2 hasta que se convierta en un valor mayor que 10. Esto
significa que la primera acción en este bucle while es imprimir el valor actual de la variable time.
Dado que los bucles while no incluyen una secuencia que iterar, tenemos que definir
explícitamente cómo cambia la variable en el cuerpo.

Por ejemplo, en este bucle while, le sumamos 2 a la variable time en cada iteración. Esto se debe
a que solo queremos imprimir la hora cada dos minutos, así que este bucle while imprime todos
los números pares menores o iguales a 10. Vimos los fundamentos de los bucles while, ahora
exploremos un ejemplo práctico. Imagina que hay una limitación del número de dispositivos a
los que puede conectarse el usuario. Con un bucle while imprimimos un mensaje cuando el
usuario llega al límite.

Creemos un bucle while para esto. Antes de empezar, debemos asignar valores a dos variables.
Primero, definimos el valor máximo de dispositivos conectados como 5. Luego, definimos la
variable de bucle. Usamos i para esto y le damos un valor de 1.

A diferencia de los bucles for, con los while ponemos la variable fuera del bucle. Después
creamos el encabezado del bucle while. En este caso, la condición es que la primera variable sea
menor que la segunda. Estas variables son las variables de bucle i y max_devices. Como sabemos
que el valor de max_devices es 5, este bucle se ejecutará siempre y cuando el valor de i sea
menor que 5. Luego indicamos qué queremos que haga el bucle while. Como el bucle se ejecuta
si el usuario puede conectarse a más dispositivos,

primero imprimiremos el mensaje “User can still connect to additional devices”.

Página 87 de 117
Después, con cada iteración, sumamos 1 a i. Cuando el bucle se repita, usará el nuevo valor de
la variable i. Python saldrá del bucle cuando i ya no sea menor que 5. Imprimamos también un
mensaje cuando esto suceda.

Ya no sangramos porque esta acción ocurre fuera del bucle. Luego imprimiremos el mensaje
“User has reached maximum number of connected devices”.

Ya podemos ejecutar esto.

Debido al bucle, el primer mensaje se imprime cuatro veces. El ciclo se detiene cuando el valor
de i aumenta a 5. Aquí sale del bucle e imprime el segundo mensaje. Al combinar este
conocimiento nuevo de bucles for y while con lo que ya sabes sobre sentencias condicionales y
variables, ya dispones de muchas opciones en Python. ¡Buen trabajo!

4.7 Más información sobre los bucles en Python

Anteriormente, exploraste las sentencias iterativas. Una sentencia iterativa es un código que
ejecuta repetidamente una serie de instrucciones. Dependiendo de los criterios, estas se
ejecutan cero o más veces. Hemos iterado a través de código utilizando bucles for y bucles
while. En esta lectura, repasarás la sintaxis de los bucles. Luego, aprenderás a utilizar las
palabras clave break y continue para controlar la ejecución de los bucles.

Bucles for
Si necesitas iterar a través de una secuencia especificada, debes usar un bucle for.

El siguiente bucle for itera a través de una secuencia de nombres de usuario. Puedes ejecutarlo
para observar la salida:

Página 88 de 117
La primera línea de este código es el encabezado del bucle. Allí, la palabra clave for indica el
inicio de un bucle for. Justo después de for, viene la variable de bucle. La variable de bucle se
utiliza para controlar las iteraciones de un bucle. En los bucles for, la variable de bucle forma
parte del encabezado. En este ejemplo, la variable de bucle es i.

El resto del encabezado del bucle indica la secuencia a iterar. El operador in aparece antes de la
secuencia para indicar a Python que ejecute el bucle para cada elemento de la secuencia. En
este ejemplo, la secuencia es la lista de nombres de usuario. El encabezado del bucle debe
terminar con dos puntos (:).

La segunda línea de este ejemplo de bucle for es el cuerpo del bucle. El cuerpo del bucle for
puede tener varias líneas de código. En el cuerpo, se indica lo que el bucle debe hacer en cada
iteración. En este caso, es print(i), o en otras palabras, mostrar el valor actual de la variable de
bucle durante esa iteración del bucle. Para que Python ejecute el código correctamente, el
cuerpo del bucle debe tener más sangría que el encabezado del bucle.

Nota: Cuando se usa en un bucle for, el operador in precede a la secuencia que iterará el bucle
for. Cuando se utiliza en una sentencia condicional, el operador in se usa para evaluar si un
objeto forma parte de una secuencia. El ejemplo if "elarson" in ["tshah", "bmoreno", "elarson"]
se evalúa como True porque "elarson" forma parte de la secuencia que sigue a in.

Recorrer en bucle una lista


El uso de bucles for en Python permite iterar fácilmente a través de listas, como una lista de
activos informáticos. En el siguiente bucle for, asset es la variable del bucle y otra variable,
computer_assets, es la secuencia. La variable computer_assets almacena una lista. Esto

Página 89 de 117
significa que en la primera iteración el valor de asset será el primer elemento de esa lista, y en
la segunda iteración, el valor de asset será el segundo elemento de esa lista. Puedes ejecutar el
código para observar qué pasa:

Nota: También es posible hacer un bucle a través de una cadena. Esto devolverá cada carácter
uno por uno. Puedes observarlo ejecutando el siguiente bloque de código que itera a través de
la cadena "security":

Uso de range()
Otra forma de iterar a través de un bucle for es basándose en una secuencia de números, y esto
se puede realizar con range(). La función range() genera una secuencia de números. Acepta
entradas para el punto de inicio, el punto de parada y el incremento entre paréntesis. Por
ejemplo, el siguiente código indica que la secuencia de números comience en 0, se detenga en
5 y se incremente cada vez en 1:

range(0, 5, 1)

Página 90 de 117
Nota: El punto de inicio es inclusivo, lo que significa que el 0 se incluirá en la secuencia de
números, pero el punto de parada es exclusivo, lo que significa que el 5 se excluirá de la
secuencia. Concluirá un entero antes del punto de parada.

Cuando ejecutes este código, podrás observar cómo el 5 queda excluido de la secuencia:

Debes considerar que es necesario incluir el punto de parada, pero si el punto de inicio es el
valor predeterminado de 0 y el incremento es el valor predeterminado de 1, no es necesario
especificarlos en el código. Si ejecutas este código, obtendrás los mismos resultados:

Nota: Si el punto de inicio es distinto de 0 o el incremento es distinto de 1, deben especificarse.

Bucles while
Si deseas que un bucle itere en función de una condición, debes usar un bucle while. Mientras
la condición sea True, el bucle continúa, pero cuando se evalúa como False, se sale del bucle
while. El siguiente bucle while continúa mientras la condición de que i < 5 sea True:

Página 91 de 117
En este bucle while, el encabezado del bucle es la línea while i < 5:. A diferencia de los bucles
for, el valor de una variable de bucle utilizada para controlar las iteraciones no se asigna dentro
del encabezado del bucle en un bucle while. En su lugar, se asigna fuera del bucle. En este
ejemplo, a i se le asigna un valor inicial de 1 en una línea que precede al bucle.

La palabra clave while indica el comienzo de un bucle while. Después de esto, el encabezado
del bucle indica la condición que determina cuándo termina el bucle. Esta condición utiliza los
mismos operadores de comparación que las sentencias condicionales. Al igual que en un bucle
for, el encabezado de un bucle while debe terminar con dos puntos (:).

El cuerpo de un bucle while indica las acciones a realizar en cada iteración. En este ejemplo, es
mostrar el valor de i e incrementar el valor de i en 1. Para que el valor de i cambie con cada
iteración, es necesario indicarlo en el cuerpo del bucle while. En este ejemplo, el bucle itera
cuatro veces hasta que alcanza un valor de 5.

Números enteros en la condición del bucle


Usualmente, como se acaba de demostrar, la condición del bucle se basa en valores enteros.
Por ejemplo, puedes optar por permitir que un usuario inicie sesión siempre y cuando lo haya
intentado menos de cinco veces. Entonces, tu variable de bucle, login_attempts, se puede
inicializar a 0, incrementar en 1 en el bucle, y la condición del bucle puede especificar iterar solo
cuando la variable sea menor que 5. Puedes ejecutar el código a continuación y revisar el
recuento de cada intento:

Página 92 de 117
El valor de login_attempts pasó de 0 a 4 antes de que la condición del bucle se evaluara a False.
Por lo tanto, los valores de 0 a 4 se imprimen, y el valor 5 no se imprime.

Valores booleanos en la condición del bucle


Las condiciones en los bucles while también pueden depender de otros tipos de datos, incluidas
las comparaciones de datos booleanos. En estas, la condición del bucle puede comprobar si una
variable del bucle es igual a un valor como True o False. El bucle itera un número indeterminado
de veces hasta que la condición booleana deja de ser True.

En el siguiente ejemplo, se usa un valor booleano para salir de un bucle cuando un usuario ha
realizado cinco intentos de inicio de sesión. Una variable llamada count mantiene un registro
de cada intento de inicio de sesión y cambia la variable login_status a False cuando count es
igual a 4. (Incrementar count de 0 a 4 representa cinco intentos de inicio de sesión). Dado que
la condición while solo itera cuando login_status es True, saldrá del bucle. Puedes ejecutar esto
para explorar esta salida:

Página 93 de 117
El código imprime un mensaje para intentarlo de nuevo cuatro veces, pero sale del bucle una
vez que login_status se establece en False.

Gestión de bucles
Puedes usar las palabras clave break y continue para tener un control adicional sobre las
iteraciones del bucle. Ambas se incorporan a una sentencia condicional dentro del cuerpo del
bucle. Se pueden insertar para que se ejecuten cuando la condición en una sentencia if es True.
La palabra clave break se utiliza para salir de un bucle. Asimismo, la palabra clave continue se
emplea para omitir una iteración y continuar con la siguiente.

break
Cuando quieras salir de un bucle for o while basándote en que una condición particular de una
sentencia if sea True, puedes escribir una sentencia condicional en el cuerpo del bucle e incluir
la palabra clave break en el cuerpo de la condicional.

El siguiente ejemplo lo demuestra. La sentencia condicional con break indica a Python que salga
del bucle for si el valor de la variable asset del bucle es igual a "desktop20". En la segunda
iteración, esta condición se evalúa como True. Puedes ejecutar este código para observar esto
en la salida:

Como era de esperar, los valores de "desktop20" y "smartphone03" no se imprimen porque el


bucle se rompe en la segunda iteración.

continue
Cuando desees omitir una iteración basándote en que cierta condición de una sentencia if sea
True, puedes agregar la palabra clave continue en el cuerpo de una sentencia condicional
dentro del bucle. En este ejemplo, continue se ejecutará cuando la variable del bucle asset sea

Página 94 de 117
igual a "desktop20". Puedes ejecutar este código para observar cómo difiere esta salida del
ejemplo anterior con break:

El valor "desktop20" en la segunda iteración no se imprime. Sin embargo, en este caso, el bucle
continúa a la siguiente iteración y se imprime "smartphone03".

Bucles infinitos
Un bucle que no se detiene se denomina bucle infinito. Si lo creas, debes presionar CTRL-C O
CTRL-Z en tu teclado para detenerlo. Es posible que necesites hacer esto al ejecutar un servicio
que procesa datos constantemente, como un servidor web.

Conclusiones clave
Los analistas de seguridad deben familiarizarse con las sentencias iterativas. Pueden usar bucles
for para realizar tareas que impliquen iterar a través de listas una cantidad predeterminada de
veces. También pueden emplear bucles while para realizar tareas basadas en ciertas condiciones
que se evalúan como True. Las palabras clave break y continue se utilizan en sentencias
iterativas para controlar el flujo de los bucles basándose en condiciones adicionales.

Página 95 de 117
4.8 Identify: Select the correct iterative statement

Página 96 de 117
Página 97 de 117
Página 98 de 117
Página 99 de 117
Página 100 de 117
Página 101 de 117
4.9 Actividad: Crea bucles

Instrucciones:

En este lab, abrirás un entorno de cuaderno para poner en práctica cómo escribir sentencias
iterativas en Python. Se te presentará una situación de seguridad para explorar a lo largo del
lab. Practicarás la creación de bucles para automatizar procesos repetitivos y hacerlos más
eficientes.

Lo que podrás hacer después de este lab:

• Crear un bucle simple que represente el intento de realizar una conexión a una red.

• Utilizar un bucle for para investigar la actividad de inicio de sesión comparando una lista de
direcciones IP permitidas con una lista de direcciones IP desde las cuales los usuarios han
intentado iniciar sesión.

• Usar un bucle while para generar identificadores de empleados únicos iterando a través de
números.

Al completar el lab, ten en cuenta las siguientes funcionalidades:

• Tareas: Las instrucciones paso a paso en cada tarea te guiarán a través del lab.

• Preguntas: Las preguntas de reflexión te ayudarán a hacer una pausa para revisar los
conceptos y analizar tu resultado a medida que avanzas a través del lab.

• Pistas: Las pistas ocultas proporcionan sugerencias opcionales que puedes tener en cuenta
para completar tu trabajo.

Debes completar este lab antes de continuar. En el siguiente elemento del curso, se revisará el
ejemplo de un lab terminado. Puedes comparar las respuestas de código y texto en el ejemplo
con las tuyas.

Introducción

Como analista de seguridad, algunas de las medidas que tomes para proteger un sistema
implicarán la repetición. Por ejemplo, puede que tengas que investigar varias direcciones IP que
hayan intentado conectarse a la red. En Python, las sentencias iterativas pueden ayudar a
automatizar procesos repetitivos como estos para hacerlos más eficientes.

Página 102 de 117


En este laboratorio, practicarás escribiendo sentencias iterativas en Python.

Consejos para completar este laboratorio

Situación hipotética

Trabajas como analista de seguridad y escribes programas en Python para automatizar la


visualizació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.
Utiliza 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.

Tarea 2

La función range() también puede tomar una variable. Para repetir una acción especificada un
determinado 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

Página 103 de 117


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.

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.

Página 104 de 117


Pregunta 1

¿Qué diferencias observas entre el bucle for y el bucle while que escribiste?

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.

Tarea 4

Ahora, pasarás a tu próxima tarea. Automatizarás la verificación de si las direcciones IP forman


parte de una lista de permisos. Comenzarás con una lista de direcciones IP desde las que los
usuarios han intentado iniciar sesión, almacenada en una variable llamada ip_addresses. Escribe
un bucle for que muestre los elementos de esta lista de uno en uno. Utiliza i como variable de
bucle en el bucle for.

Asegúrate de reemplazar el fragmento ### TU CÓDIGO AQUÍ ### con tu propio código antes
de ejecutar la siguiente celda.

Página 105 de 117


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. 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.

Página 106 de 117


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.

Página 107 de 117


Tarea 7

Ahora completarás otra tarea. Se trata de automatizar la creación de nuevos ID de empleado.

Te han pedido que crees ID de empleados para un departamento de ventas, con el criterio de que
todos estos ID deben ser números únicos, divisibles por 5 y comprendidos entre 5000 y 5150.
Los ID de empleados pueden incluir tanto 5000 como 5150.

Escribe un bucle while que genere ID de empleados únicos para el departamento de ventas
iterando a través de los números y muestre cada ID creado.

Asegúrate de reemplazar el fragmento ### TU CÓDIGO AQUÍ ### con tu propio código antes
de ejecutar la siguiente celda.

Página 108 de 117


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.

Página 109 de 117


4.10 Ejemplo: Crea bucles

Aquí tienes un ejemplo completo del lab.

Compara el código y las respuestas de texto en el ejemplo con el lab que completaste. ¿En qué
se diferencian? Usa las respuestas a estas preguntas para guiarte a medida que avanzas en el
curso.

Página 110 de 117


4.11 Pon a prueba tus conocimientos: Sentencias condicionales e iterativas

Página 111 de 117


Página 112 de 117
5. REVISIÓN: INTRODUCCIÓN A PYTHON
5.1 Resumen

¡Bien hecho! Viste por qué los analistas de seguridad usan Python y la estructura básica de un
programa. Incluso, escribiste líneas de código en Python. Repasemos lo que aprendiste. Primero
viste los fundamentos de la programación y por qué es una herramienta importante en la
seguridad. Viste conceptos básicos del funcionamiento de los lenguajes de programación.
Aprendiste a reconocer tipos de datos en Python. Vimos datos de cadena, enteros, float,
booleanos y de lista. Luego trabajamos con las variables. Viste las sentencias condicionales y
cómo revisar condiciones lógicas con sentencias en Python. Por último, trabajamos con
sentencias iterativas y hablamos de los dos tipos de bucles: bucles for y bucles while. Usarás
este conocimiento al avanzar por el curso y en tu carrera como analista de seguridad. En la
siguiente sección, veremos otros componentes importantes de Python, como las funciones.

5.2 Términos del glosario de la semana 1

Términos y definiciones del curso 7, semana 1

Automatización: Uso de la tecnología para realizar tareas comunes y repetitivas y reducir el


esfuerzo humano.

Comentario: Anotación que hacen los programadores para explicar el propósito del código,
explicar qué hace y por qué, de manera de hacerlo más entendible.

Cuaderno (notebook): Interfaz en línea para escribir, almacenar y ejecutar código.

Datos booleanos: Tipo de datos que solo pueden ser uno de dos valores: True (verdadero) o
False (falso).

Datos de cadena (o cadena): En Python, conjunto de datos formado por una secuencia
ordenada de caracteres.

Datos de conjunto (o conjunto): En Python, conjunto desordenado de valores únicos (no


repetidos).

Datos de diccionario (o diccionario): En Python, tipo de datos que consiste en una o más parejas
clave-valor.

Página 113 de 117


Datos de lista (o lista): En Python, estructura de datos que consta de una colección de datos en
forma secuencial.

Datos de tupla (o tupla): En Python, tipo de dato que consiste en una colección de datos que
no se pueden modificar.

Datos enteros: Datos formados por un número sin punto decimal.

Datos float (o de punto flotante): Datos formados por un número con un punto decimal.

Entorno de desarrollo integrado (IDE): Aplicación informática para escribir código que
proporciona asistencia para la edición, así como herramientas de corrección de errores.

Error de tipo: Error que resulta de usar el tipo de datos incorrecto.

Interfaz de línea de comandos (CLI): Interfaz de usuario basada en texto que utiliza comandos
para interactuar con la computadora.

Intérprete: Programa informático que traduce el código Python en instrucciones ejecutables


línea por línea.

Programación: Proceso que permite crear un conjunto específico de instrucciones para que una
computadora ejecute tareas.

Sentencia condicional: Sentencia que evalúa el código para determinar si cumple con un
conjunto específico de condiciones.

Sentencia iterativa: Código que ejecuta repetidamente un conjunto de instrucciones.

Sintaxis: Reglas que determinan qué está correctamente estructurado en un lenguaje


informático.

Tipo de datos: Categoría para un tipo particular de elemento (o ítem) de datos.

Variable: Contenedor que almacena datos.

Variable de bucle: Variable que se utiliza para controlar las iteraciones de un bucle.

Página 114 de 117


5.3 Desafío semanal 1

Página 115 de 117


Página 116 de 117
Página 117 de 117

También podría gustarte