Calcular la tasa de defectuosos en la producción de clones humanos

PythonPythonBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este proyecto, aprenderás a calcular la tasa de defectuosos de los humanos clonados producidos por las fábricas de clones del Imperio Galáctico.

👀 Vista previa

tasa_defectuosa=0.04

🎯 Tareas

En este proyecto, aprenderás:

  • Cómo configurar el entorno del proyecto
  • Cómo entender los requisitos del proyecto
  • Cómo implementar la función calcular_tasa_defectuosa
  • Cómo probar la función calcular_tasa_defectuosa
  • Cómo refinar y optimizar la solución

🏆 Logros

Después de completar este proyecto, podrás:

  • Configurar un entorno de proyecto de Python
  • Entender e interpretar los requisitos del proyecto
  • Implementar una función para resolver un problema específico
  • Probar y validar la corrección de tu implementación
  • Explorar maneras de optimizar y refinar tu solución

Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL python(("Python")) -.-> python/BasicConceptsGroup(["Basic Concepts"]) python(("Python")) -.-> python/DataStructuresGroup(["Data Structures"]) python(("Python")) -.-> python/FunctionsGroup(["Functions"]) python(("Python")) -.-> python/PythonStandardLibraryGroup(["Python Standard Library"]) python/BasicConceptsGroup -.-> python/variables_data_types("Variables and Data Types") python/BasicConceptsGroup -.-> python/numeric_types("Numeric Types") python/DataStructuresGroup -.-> python/lists("Lists") python/DataStructuresGroup -.-> python/sets("Sets") python/FunctionsGroup -.-> python/function_definition("Function Definition") python/PythonStandardLibraryGroup -.-> python/data_collections("Data Collections") subgraph Lab Skills python/variables_data_types -.-> lab-302695{{"Calcular la tasa de defectuosos en la producción de clones humanos"}} python/numeric_types -.-> lab-302695{{"Calcular la tasa de defectuosos en la producción de clones humanos"}} python/lists -.-> lab-302695{{"Calcular la tasa de defectuosos en la producción de clones humanos"}} python/sets -.-> lab-302695{{"Calcular la tasa de defectuosos en la producción de clones humanos"}} python/function_definition -.-> lab-302695{{"Calcular la tasa de defectuosos en la producción de clones humanos"}} python/data_collections -.-> lab-302695{{"Calcular la tasa de defectuosos en la producción de clones humanos"}} end

Entender los requisitos del proyecto

En este paso, entenderás los requisitos del proyecto.

El objetivo de este proyecto es calcular la tasa de defectuosos de los humanos clonados producidos por las fábricas de clones del Imperio Galáctico.

Los requisitos clave son:

  1. Completar la función calcular_tasa_defectuosa en calcular_tasa_defectuosa.py.
  2. La función toma una matriz bidimensional que representa la producción de IDs de clones y devuelve la tasa de defectuosos de los humanos clonados producidos por las fábricas.
  3. La función debe manejar el caso en el que la matriz de entrada está vacía.
  4. La función debe devolver un número de punto flotante.

Implementar la función calcular_tasa_defectuosa

En este paso, implementarás la función calcular_tasa_defectuosa en el archivo calcular_tasa_defectuosa.py.

  1. Abre el archivo calcular_tasa_defectuosa.py en tu editor de código preferido.
  2. Localiza la función calcular_tasa_defectuosa y reemplaza el código existente con la siguiente implementación:
def calcular_tasa_defectuosa(matriz: List[List[str]]) -> float:
    """
    Calcula la tasa de defectuosos de la producción de clones basada en la matriz de IDs de clones.

    Args:
        matriz (List[List[str]]): Una matriz bidimensional que representa la producción de IDs de clones.

    Returns:
        float: La tasa de defectuosos, que es la proporción de clones duplicados con respecto al total de clones producidos.
    """
    if not matriz:
        return 0.0

    total_clones = 0
    duplicados = 0

    conjunto_clones = set()

    for fila in matriz:
        for clone in fila:
            total_clones += 1
            if clone in conjunto_clones:
                duplicados += 1
            else:
                conjunto_clones.add(clone)

    return round(duplicados / total_clones, 2)

Esta implementación primero verifica si la matriz de entrada está vacía, y si es así, devuelve una tasa de defectuosos de 0.0.

Luego, itera a través de la matriz, llevando un registro del número total de clones y el número de clones duplicados. Utiliza un conjunto conjunto_clones para almacenar los IDs de clones únicos.

Finalmente, la función calcula la tasa de defectuosos dividiendo el número de clones duplicados por el número total de clones, y redondea el resultado a dos decimales.

Probar la función calcular_tasa_defectuosa

En este paso, probarás la función calcular_tasa_defectuosa con el ejemplo proporcionado.

  1. Abre una nueva ventana de terminal y navega hasta el directorio /home/labex/project.
  2. Ejecuta el siguiente comando para ejecutar el script calcular_tasa_defectuosa.py:
python3 calcular_tasa_defectuosa.py
  1. Cuando se te solicite, ingresa la matriz bidimensional de ejemplo proporcionada en el desafío:
python3 calcular_tasa_defectuosa.py
>>> Ingresa una matriz bidimensional:[['1000ffd8', '1000ffc8', '1000ffdb', '1000ffbc', '1000ffba'],
                       ['1000ffd2', '1000ffbd', '1000ffd7', '1000ffcb', '1000ffd6'],
                       ['1000ffc9', '1000ffab', '1000ffb8', '1000ffd5', '1000ffad'],
                       ['1000ffc7', '1000ffcf', '1000ffb7', '1000ffae', '1000ffc1'],
                       ['1000ffb9', '1000ffce', '1000ffc3', '1000ffd1', '1000ffc8'],
                       ['1000ffd1', '1000ffb2', '1000ffcd', '1000ffda', '1000ffcc'],
                       ['1000ffc2', '1000ffc4', '1000ffca', '1000ffb3', '1000ffaa'],
                       ['1000ffbf', '1000ffbe', '1000ffc5', '1000ffc0', '1000ffd0'],
                       ['1000ffb4', '1000ffc6', '1000ffd9', '1000ffb1', '1000ffb5'],
                       ['1000ffb6', '1000ffb0', '1000ffd3', '1000ffd4', '1000ffbb']]
  1. La salida debe mostrar la tasa de defectuosos calculada:
tasa_defectuosa=0.04

Esto coincide con el resultado esperado del desafío, lo que significa que la función calcular_tasa_defectuosa está funcionando correctamente.

Refinar y optimizar la solución

En este último paso, puedes, opcionalmente, refinar y optimizar aún más la función calcular_tasa_defectuosa. Aquí hay algunas ideas:

  1. Mejora de la eficiencia: La implementación actual tiene una complejidad temporal de O(n^2), donde n es el número total de clones. Puedes explorar maneras de optimizar el algoritmo, como utilizar una estructura de datos más eficiente para llevar un registro de los IDs de clones únicos.
  2. Adición de manejo de errores: Mejora la función para manejar entradas no válidas, como matrices con IDs de clones no hexadecimales o matrices con longitudes de fila diferentes.
  3. Mejora de la legibilidad: Puedes mejorar la legibilidad del código agregando más comentarios, utilizando nombres de variables más descriptivos y siguiendo las mejores prácticas para el estilo de código de Python.
  4. Implementación de pruebas unitarias: Escribe pruebas unitarias para garantizar la corrección de la función calcular_tasa_defectuosa y para facilitar el mantenimiento del código en el futuro.

Siente la libertad de explorar estas ideas y hacer cualquier mejora que consideres necesaria en la solución.

✨ Revisar Solución y Practicar

Resumen

¡Felicidades! Has completado este proyecto. Puedes practicar más laboratorios en LabEx para mejorar tus habilidades.