Introducción
En este proyecto, aprenderás a calcular los valores de daño de dos armas láser de alto rendimiento desarrolladas por el instituto de investigación de armas del Imperio Galáctico. El laboratorio de equipo de armas se encarga de probar los valores de las armas, y tú los ayudarás implementando el proceso de cálculo de daño.
$ python calculate_weapon_damage.py
[3, 2]
🎯 Tareas
En este proyecto, aprenderás:
- Cómo configurar el entorno del proyecto y crear los archivos necesarios
- Cómo implementar la función
calculate_weapon_damage()para calcular los valores de daño de las dos armas láser - Cómo probar la función
calculate_weapon_damage()con los datos de ejemplo proporcionados
🏆 Logros
Después de completar este proyecto, podrás:
- Comprender el enunciado del problema y los requisitos para el cálculo de daño de armas láser
- Implementar una función para resolver un sistema de ecuaciones lineales y calcular los valores de daño de las armas láser
- Probar la función implementada con diferentes datos de entrada para asegurarte de que funcione correctamente
- Aplicar tus habilidades de resolución de problemas y programación a un escenario del mundo real
Configurar el Entorno del Proyecto
En este paso, configurarás el entorno del proyecto y modificarás los archivos necesarios para el proyecto.
- Abra el archivo
calculate_weapon_damage.pyen un editor de texto. - En la parte superior del archivo, agregue la siguiente declaración de importación:
from typing import List
Esto te permitirá usar la anotación de tipo List en tu código.
Implementar la función calculate_weapon_damage()
En este paso, implementarás la función calculate_weapon_damage() para calcular los valores de daño de las dos armas láser.
- Dentro del archivo
calculate_weapon_damage.py, defina la funcióncalculate_weapon_damage()con la siguiente firma:
def calculate_weapon_damage(test1: List[int], test2: List[int]) -> List[int]:
## Tu código aquí
pass
Implemente la lógica para calcular los valores de daño de Arma A y Arma B. Puedes usar los siguientes pasos como guía:
- Verifique si las matrices de entrada
test1ytest2tienen la longitud correcta (3 elementos cada una). Si no es así, devuelva una lista vacía[]. - Desempaquete los valores de las matrices de entrada en variables
a1,b1,total1ya2,b2,total2. - Resuelva el sistema de ecuaciones lineales para encontrar los valores de daño
x(para Arma A) yy(para Arma B). Puedes usar las siguientes ecuaciones:
a1 * x + b1 * y = total1 a2 * x + b2 * y = total2- Convierta los valores calculados de
xeya enteros y devuélvalos como una lista[x, y]. - Si hay un
ZeroDivisionErroral resolver las ecuaciones, devuelva una lista vacía[].
El código es el siguiente:
def calculate_weapon_damage(test1: List[int], test2: List[int]) -> List[int]: if len(test1)!= 3 or len(test2)!= 3: return [] a1, b1, total1 = test1 a2, b2, total2 = test2 ## a1 * x + b1 * y = total1 ## a2 * x + b2 * y = total2 try: y = (total1 * a2 - total2 * a1) / (b1 * a2 - b2 * a1) x = (total1 - b1 * y) / a1 except ZeroDivisionError: return [] return [int(x), int(y)]- Verifique si las matrices de entrada
Agregue el siguiente código al final del archivo para probar la función
calculate_weapon_damage():
if __name__ == "__main__":
print(calculate_weapon_damage([4, 5, 22], [3, 2, 13]))
Esto imprimirá los valores de daño calculados cuando ejecutes el script.
Probar la función calculate_weapon_damage()
En este paso, probarás la función calculate_weapon_damage() con los datos de ejemplo proporcionados.
- Guarde el archivo
calculate_weapon_damage.py. - Abra una terminal y navegue hasta el directorio
/home/labex/project. - Ejecute el script
calculate_weapon_damage.py:
python calculate_weapon_damage.py
Deberías ver la salida [3, 2], que es el resultado esperado para los datos de ejemplo dados.
- Intente probar la función con otros datos de entrada para asegurarse de que funcione correctamente. Por ejemplo, puedes intentar pasar
[4, 5, 22]y[3, 2, 14]para ver si la función devuelve una lista vacía[]debido a la entrada no válida.
¡Felicitaciones! Has implementado con éxito la función calculate_weapon_damage() para calcular los valores de daño de las dos armas láser.
Resumen
¡Felicitaciones! Has completado este proyecto. Puedes practicar más laboratorios en LabEx para mejorar tus habilidades.



