0% encontró este documento útil (0 votos)
1 vistas15 páginas

Programacion

El documento presenta una serie de ejemplos de código en Python que ilustran el uso de estructuras de datos como listas, tuplas, diccionarios y matrices. Cada sección aborda un caso práctico, desde el registro de padawans y la gestión de servidores hasta el análisis de notas y el registro de pacientes en una clínica. Estos ejemplos demuestran cómo manipular y acceder a datos en Python de manera efectiva.

Cargado por

rafael1801e
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 DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
1 vistas15 páginas

Programacion

El documento presenta una serie de ejemplos de código en Python que ilustran el uso de estructuras de datos como listas, tuplas, diccionarios y matrices. Cada sección aborda un caso práctico, desde el registro de padawans y la gestión de servidores hasta el análisis de notas y el registro de pacientes en una clínica. Estos ejemplos demuestran cómo manipular y acceder a datos en Python de manera efectiva.

Cargado por

rafael1801e
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 DOCX, PDF, TXT o lee en línea desde Scribd

1.

El Censo del Padawan (Listas)

# Lista para guardar a los futuros maestros Jedi

padawans = []

print("--- Registro de Padawans ---")

print("Introduce el nombre de 5 compañeros para el entrenamiento:")

# Usamos un ciclo sencillo para no repetir código 5 veces

for i in range(5):

# El f-string ayuda a que el usuario sepa por cuál número va

nombre = input(f"{i+1}. Nombre del compañero: ")

[Link](nombre)

# Los ordenamos alfabéticamente (el método sort lo hace ahí mismo)

[Link]()

print("\n--- Lista de Padawans ordenada ---")

# Un toque final para que la lista se vea limpia al imprimirla

for padawan in padawans:

print(f"• {padawan}")
2. La Bóveda de Seguridad (Tuplas)

# Definimos la tupla con los servidores del proyecto

# Recordar: las tuplas son inmutables (no cambian)

servidores = ("Auth", "DB", "Storage", "API")

print("--- Gestión de Servidores ---")

# Pedimos el índice al usuario

try:

indice = int(input("Ingresa un número del 0 al 3 para ver el servidor: "))

print(f"El servidor seleccionado es: {servidores[indice]}")

except IndexError:

print("Error: Ese número está fuera de rango. Solo tenemos 4 servidores


(0-3).")

except ValueError:

print("Error: Por favor, ingresa un número entero válido.")

print("\n--- Intento de modificación ---")

# Aquí intentamos cambiar un nombre para ver qué pasa

try:

print("Intentando cambiar el nombre del servidor 'Auth' por 'Login'...")

servidores[0] = "Login"

except TypeError as error:

print(f"¡Falló el intento! Error: {error}")

print("Explicación: Las tuplas en Python son 'inmutables'.")


print("Esto significa que una vez creadas, no puedes reasignar sus
elementos.")

print("\nFin de la prueba.")
3. Diccionario de Constantes (Hardware)

# Mi diccionario de hardware para el proyecto

# La idea es ver qué onda con los recursos de la PC

estado_pc = {

"CPU": "80%",

"RAM": "4GB",

"SSD": "Libre"

print("Estado inicial:")

print(estado_pc)

# Agregando un nuevo componente (me faltaba la gráfica)

estado_pc["GPU"] = "45°C"

# Actualizando la RAM porque le instalé más módulos

estado_pc["RAM"] = "16GB"

print("\n--- Estado Actualizado ---")

# Lo imprimo de forma más ordenada para que el profe no se pierda

for componente, estado in estado_pc.items():

print(f"Componente: {componente} | Estado: {estado}")

# Una pequeña comprobación final

print(f"\nTotal de componentes monitoreados: {len(estado_pc)}")

4. Análisis de Notas (Estadística con Listas)


import random

# Generamos 10 notas aleatorias entre 0 y 20 (suponiendo esa escala)

# Esto es más rápido que pedirlas una por una por teclado

notas = [[Link](0, 20) for _ in range(10)]

print(f"Las notas del grupo son: {notas}")

# Calculamos la nota más alta y la más baja

# Uso las funciones de Python para no complicarme

nota_maxima = max(notas)

nota_minima = min(notas)

# Para el promedio, sumamos todo y dividimos por la cantidad de notas

suma_total = sum(notas)

promedio = suma_total / len(notas)

print("\n--- Resultados del Grupo ---")

print(f"La nota más alta fue: {nota_maxima}")

print(f"La nota más baja fue: {nota_minima}")

# El :.2f es para que solo muestre dos decimales y no un número gigante

print(f"El promedio total es: {promedio:.2f}")

# Un pequeño mensaje extra para que se vea más humano

if promedio >= 10:


print("El grupo aprobó en promedio. ¡Bien ahí!")

else:

print("El promedio está bajo, toca estudiar más.")


5. Buscador de Precios (Diccionarios)

# Mi diccionario con los precios de la cafetería

menu = {

"Cafe Americano": 1.50,

"Capuchino": 2.50,

"Latte": 3.00,

"Muffin": 2.00,

"Te Frio": 1.75

print("--- BIENVENIDO A LA CAFETERÍA ---")

print("Productos disponibles hoy:")

# Mostramos el menú para que el usuario sepa qué pedir

for producto in menu:

print(f"- {producto}")

print("---------------------------------")

# Pedimos al usuario que escriba lo que quiere

pedido = input("¿Qué te gustaría ordenar?: ")

# Verificamos si lo que escribió está en nuestro diccionario

# Usamos el condicional 'in' que es súper directo en Python

if pedido in menu:

precio = menu[pedido]

print(f"¡Excelente elección! El {pedido} tiene un costo de ${precio}")


else:

print(f"Lo siento, el producto '{pedido}' no lo tenemos en el menú por


ahora.")

print("\nGracias por visitarnos.")


6. Matriz de Laboratorio (Listas de Listas)

# Representación del laboratorio LF6-LAB

# Es una matriz de 2 filas y 3 columnas

# Al principio todas están "Libres"

laboratorio = [

["Libre", "Libre", "Libre"], # Fila 0

["Libre", "Libre", "Libre"] # Fila 1

print("--- Estado Inicial del LF6-LAB ---")

for fila in laboratorio:

print(fila)

# Cambiamos el estado de la PC en la posición [1][2]

# Recordar: [1] es la segunda fila y [2] es la tercera PC

laboratorio[1][2] = "Mantenimiento"

print("\n--- Estado Actualizado (PC en mantenimiento) ---")

# Lo imprimo de nuevo para confirmar que el cambio se hizo bien

# Uso un contador para que se vea qué fila es cada una

for i in range(len(laboratorio)):

print(f"Fila {i}: {laboratorio[i]}")

print("\nCambio realizado con éxito en la posición [1][2].")

7. El Historial de Navegación (Pilas con Listas)


# Mi historial de navegación (simulando el navegador)

historial = [

"[Link]

"[Link]

"[Link]

print("Historial actual:")

print(historial)

# El usuario navega a una nueva página

nueva_url = "[Link]

print(f"\nNavegando a: {nueva_url}")

[Link](nueva_url)

print(f"Historial ahora: {historial}")

# Simulación del botón 'Atrás'

# El método .pop() saca el último elemento que entró

if len(historial) > 0:

url_eliminada = [Link]()

print(f"\n[Atrás] Saliste de: {url_eliminada}")

print(f"Regresaste a: {historial[-1]}")

print(f"Historial resultante: {historial}")


8. Registro de Proyecto (Diccionario Anidado)

# Definición del diccionario principal para el proyecto Nominus

# Lo estructuramos con datos anidados para organizar mejor la info

nominus_proyecto = {

"nombre": "Nominus",

# Lista de tecnologías que vamos a usar

"tecnologias": ["Python", "Flask", "PostgreSQL", "Docker"],

# El arquitecto es un sub-diccionario con sus propios datos

"arquitecto": {

"nombre": "Rafael Montilla",

"titulo": "Ingeniero de Software"

},

"estado": "En desarrollo"

print("--- DATOS DEL PROYECTO NOMINUS ---")

# Accediendo a los datos básicos

print(f"Proyecto: {nominus_proyecto['nombre']}")

print(f"Estado: {nominus_proyecto['estado']}")

# Mostrando las tecnologías (recorriendo la lista interna)

print("\nTecnologías implementadas:")

for tech in nominus_proyecto["tecnologias"]:

print(f"- {tech}")
# Accediendo al diccionario anidado (arquitecto)

# Usamos doble llave porque es un diccionario dentro de otro

info_arquitecto = nominus_proyecto["arquitecto"]

print(f"\nResponsable: {info_arquitecto['nombre']}")

print(f"Cargo: {info_arquitecto['titulo']}")

print("\n----------------------------------")
9. Filtrado de Usuarios Activos

# Lista de diccionarios (simulando una base de datos de usuarios)

usuarios = [

{"nombre": "Andrés", "activa": True},

{"nombre": "Beatriz", "activa": False},

{"nombre": "Carlos", "activa": True},

{"nombre": "Daniela", "activa": False},

{"nombre": "Esteban", "activa": True}

print("--- Usuarios con cuenta activa ---")

# Recorremos la lista con un ciclo for

for usuario in usuarios:

# Verificamos si la clave 'activa' es True

# Nota: No hace falta poner '== True', con el nombre de la clave basta

if usuario["activa"]:

print(f"Usuario activo: {usuario['nombre']}")

print("----------------------------------")

print("Fin del reporte.")


10. El "Mini-SaaS" Médico

# Lista de la clínica con algunos datos ya cargados

clinica = [

"paciente": "Luis Pérez",

"sintomas": ["Fiebre", "Tos", "Dolor de cabeza"],

"doctor": "Dr. Mendoza"

},

"paciente": "Maria Garcia",

"sintomas": ["Dolor de espalda"],

"doctor": "Dra. Rivas"

# Agregando un nuevo paciente al sistema

nuevo_paciente = {

"paciente": "Carlos Ruiz",

"sintomas": ["Alergia", "Estornudos"],

"doctor": "Dr. Salazar"

[Link](nuevo_paciente)

print("--- Registro de la Clínica ---")

print(f"Paciente nuevo agregado: {nuevo_paciente['paciente']}")


# Ahora vamos a ver cuántos síntomas tiene el primer paciente

# El primer paciente está en la posición [0]

primer_paciente = clinica[0]

nombre_primero = primer_paciente["paciente"]

# Usamos len() para contar los elementos de la lista de síntomas

cantidad_sintomas = len(primer_paciente["sintomas"])

print("\n--- Reporte del Primer Paciente ---")

print(f"Nombre: {nombre_primero}")

print(f"Cantidad de síntomas registrados: {cantidad_sintomas}")

# Un pequeño for para ver quiénes están en la lista ahora

print("\nLista actual de pacientes:")

for p in clinica:

print(f"- {p['paciente']} (Atendido por: {p['doctor']})")

También podría gustarte