Entornos de Python
Entornos de Python
"updates needed"
"20%"
"5.0"
"35"
"**/**/**"
""
Puedes usar la función print() para mostrar una cadena. Puedes explorar
esto ejecutando este código
print("updates needed")
updates needed
print('updates needed')
updates needed
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:
[]
También puedes usar la función print()print print() para mostrar una lista:
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
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:
print(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:
print(5 + 2)
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:
print(1.2 + 2.8)
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 /:
print(1/4)
print(1.0/4.0)
0.25 0.25
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:
print(True)
True
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:
(46, 2, 13, 2, 8, 0, 0)
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.
username = "nzhao"
old_username = username
username = "zhao2"
print("Previous username:", old_username)
print("Current username:", username)
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
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.
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.
Asegúrate de reemplazar cada ## TU CÓDIGO AQUÍ ### con tu propio código antes de ejecutar
la siguiente celda.
In [1]:
# Asigna a la variable `id_dispositivo` el ID del dispositivo al que solo los usuarios especificados
pueden acceder
id_dispositivo = "72e08x0"
# Muestra `id_dispositivo`
print(id_dispositivo)
72e08x0
Pista 1
Pista 2
Pista 3
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.
In [2]:
# Asigna a la variable `id_dispositivo` el ID del dispositivo al que solo los usuarios especificados
pueden acceder
id_dispositivo = "72e08x0"
tipo_id_dispositivo = type(id_dispositivo)
# Muestra `tipo_id_dispositivo`
print(tipo_id_dispositivo)
<class 'str'>
Pista 1
Pista 2
Pista 3
Pregunta 1
A partir del resultado anterior, ¿qué observas acerca del tipo de dato de id_dispositivo?
El resultado anterior muestra que el tipo de dato de id_dispositivo es str. Eso significa
que id_dispositivo almacena un valor de cadena.
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.
In [3]:
# Asigna `lista_usuarios` a la lista de nombres de usuario a los que se les permite acceder al
dispositivo
# Muestra `lista_usuarios`
print(lista_usuarios)
tipo_lista_usuarios = type(lista_usuarios)
# Muestra `tipo_lista_usuarios`
print(tipo_lista_usuarios)
<class 'list'>
Pista 1
Pista 2
Pista 3
Pregunta 2
A partir del resultado anterior, ¿qué observas acerca del tipo de dato de lista_usuarios?
El resultado anterior muestra que el tipo de dato de lista_usuarios es list. Eso significa
que lista_usuarios almacena una 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.
In [5]:
# Asigna `lista_usuarios` a la lista de nombres de usuario a los que se les permite acceder al
dispositivo
# Muestra `lista_usuarios`
print(lista_usuarios)
# Asigna a `lista_usuarios` la lista actualizada de nombres de usuario a los que se les permite
acceder al dispositivo
# Muestra `lista_usuarios`
print(lista_usuarios)
['madebowa', 'jnguyen', 'tbecker', 'nhersh', 'redwards']
['madebowa', 'jnguyen', 'tbecker', 'nhersh', 'redwards', 'lpope']
Pista 1
Pista 2
Pregunta 3
A partir del resultado anterior, ¿qué observas acerca del contenido de lista_usuarios?
El resultado anterior muestra que el contenido de lista_usuarios se actualizó después de que se
reasignó la lista nueva a la variable.
La primera llamada print() da como resultado el contenido original de la lista. La segunda
llamada print() da como resultado el contenido actualizado, que incluye el nombre de usuario
recién agregado, "lpope".
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.
In [6]:
max_inicios_sesion = 3
tipo_max_inicios_sesion = type(max_inicios_sesion)
# Muestra `tipo_max_inicios_sesion`
print(tipo_max_inicios_sesion)
<class 'int'>
Pista 1
Pista 2
Pista 3
Pregunta 4
A partir del resultado anterior, ¿qué observas acerca del tipo de dato de max_inicios_sesion?
El resultado anterior muestra que el tipo de dato de max_inicios_sesion es int. Eso significa
que max_inicios_sesion almacena un valor 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 variable.
Luego, almacena el tipo de dato intentos_inicio_sesion' en una variable
llamadatipo_intentos_inicio_sesion` y, a continuación, imprímelo para observar el resultado.
Asegúrate de reemplazar cada ## TU CÓDIGO AQUÍ ### con tu propio código antes de ejecutar
la siguiente celda.
In [2]:
# Asigna `intentos_inicio_sesion` al valor 2
intentos_inicio_sesion = 2
tipo_intentos_inicio_sesion = type(intentos_inicio_sesion)
# Muestra `tipo_intentos_inicio_sesion`
print(tipo_intentos_inicio_sesion)
<class 'int'>
Pista 1
Pista 2
Pista 3
Pregunta 5
A partir del resultado anterior, ¿qué observas acerca del tipo de dato
de tipo_intentos_inicio_sesion?
El resultado anterior muestra que el tipo de dato de tipo_intentos_inicio_sesion es int. Eso
significa que tipo_intentos_inicio_sesion almacena un valor entero.
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.
In [8]:
max_inicios_sesion = 3
intentos_inicio_sesion = 2
# Determina 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,
# y muestra el valor booleano resultante
Verdadero
Pista 1
Pista 2
Pregunta 6
¿Cuál es el resultado? ¿Qué significa esto?
El resultado anterior es Verdadero, lo que indica que intentos_inicio_sesion es menor o igual
que max_inicios_sesion. En otras palabras, el número actual de intentos que el usuario realizó para
iniciar sesión aún no excedió el número máximo de intentos permitidos.
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.
Asegúrate de reemplazar cada ## TU CÓDIGO AQUÍ ### con tu propio código antes de ejecutar
la siguiente celda.
In [9]:
max_inicios_sesion = 3
intentos_inicio_sesion = 4
# Determina 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,
# y muestra el valor booleano resultante
Falso
Pista 1
Pregunta 7
A partir de los diferentes valores que asignaste a intentos_inicio_sesion, ¿qué observaste acerca
del resultado?
El valor booleano en el resultado cambia según el valor asignado a intentos_inicio_sesion. Por
ejemplo, cuando intentos_inicio_sesion se asigna a 4, el resultado es Falso, lo que indica
que intentos_inicio_sesion no es menor o igual que max_inicios_sesion. En otras palabras, el
número actual de intentos que el usuario realizó para iniciar sesión excedió el número máximo de
intentos permitidos.
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.
In [10]:
estado_inicio_sesion = Falso
# Muestra `tipo_estado_inicio_sesion`
print(tipo_estado_inicio_sesion)
<class 'bool'>
Pista 1
Pista 2
Pregunta 8
A partir del resultado anterior, ¿qué observas acerca del tipo de dato de estado_inicio_sesion?
El resultado anterior muestra que el tipo de dato de estado_inicio_sesion es bool. Eso significa
que estado_inicio_sesion almacena un valor booleano.
Conclusión
¿Qué conclusiones clave obtuviste de este laboratorio?
— Hay muchos operadores útiles en Python que te ayudan a trabajar con variables. — El operador
de asignación = te permite asignar o reasignar un valor específico a una variable. — El operador
de comparación <= te permite comparar el valor de una variable con el valor de otra. — La
función type() en Python te ayuda a determinar el tipo de dato de un objeto. — Si le indicas una
variable a type(), mostrará el tipo de dato del valor almacenado en la variable. — La
función print() en Python te permite mostrar información. — Puede tomar un valor directamente,
una variable que almacena un valor o una comparación entre variables que se evalúa a un valor
booleano.
F