Introduction
Dans ce projet, vous allez apprendre à calculer les valeurs de dégâts de deux armes lasers performantes développées par l'institut de recherche d'armes de l'Empire Galactique. Le laboratoire d'équipement d'armes est responsable de tester les valeurs des armes, et vous allez les aider en mettant en œuvre le processus de calcul de dégâts.
$ python calculate_weapon_damage.py
[3, 2]
🎯 Tâches
Dans ce projet, vous allez apprendre :
- Comment configurer l'environnement du projet et créer les fichiers nécessaires
- Comment implémenter la fonction
calculate_weapon_damage()pour calculer les valeurs de dégâts des deux armes lasers - Comment tester la fonction
calculate_weapon_damage()avec les données d'exemple fournies
🏆 Réalisations
Après avoir terminé ce projet, vous serez capable de :
- Comprendre l'énoncé du problème et les exigences pour le calcul des dégâts des armes lasers
- Implémenter une fonction pour résoudre un système d'équations linéaires et calculer les valeurs de dégâts des armes lasers
- Tester la fonction implémentée avec différentes données d'entrée pour vous assurer qu'elle fonctionne correctement
- Appliquer vos compétences de résolution de problèmes et de programmation à un scénario du monde réel
Configurer l'environnement du projet
Dans cette étape, vous allez configurer l'environnement du projet et modifier les fichiers nécessaires au projet.
- Ouvrez le fichier
calculate_weapon_damage.pydans un éditeur de texte. - En haut du fichier, ajoutez l'instruction d'importation suivante :
from typing import List
Cela vous permettra d'utiliser l'annotation de type List dans votre code.
Implémenter la fonction calculate_weapon_damage()
Dans cette étape, vous allez implémenter la fonction calculate_weapon_damage() pour calculer les valeurs de dégâts des deux armes lasers.
- Dans le fichier
calculate_weapon_damage.py, définissez la fonctioncalculate_weapon_damage()avec la signature suivante :
def calculate_weapon_damage(test1: List[int], test2: List[int]) -> List[int]:
## Votre code ici
pass
Implémentez la logique pour calculer les valeurs de dégâts de l'Arme A et de l'Arme B. Vous pouvez utiliser les étapes suivantes comme guide :
- Vérifiez si les tableaux d'entrée
test1ettest2ont la longueur correcte (3 éléments chacun). Si ce n'est pas le cas, renvoyez une liste vide[]. - Déballez les valeurs des tableaux d'entrée dans les variables
a1,b1,total1eta2,b2,total2. - Résolvez le système d'équations linéaires pour trouver les valeurs de dégâts
x(pour l'Arme A) ety(pour l'Arme B). Vous pouvez utiliser les équations suivantes :
a1 * x + b1 * y = total1 a2 * x + b2 * y = total2- Convertissez les valeurs calculées de
xetyen entiers et renvoyez-les sous forme d'une liste[x, y]. - Si une
ZeroDivisionErrorse produit lors de la résolution des équations, renvoyez une liste vide[].
Le code est le suivant :
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)]- Vérifiez si les tableaux d'entrée
Ajoutez le code suivant à la fin du fichier pour tester la fonction
calculate_weapon_damage():
if __name__ == "__main__":
print(calculate_weapon_damage([4, 5, 22], [3, 2, 13]))
Cela imprimera les valeurs de dégâts calculées lorsque vous exécuterez le script.
Tester la fonction calculate_weapon_damage()
Dans cette étape, vous allez tester la fonction calculate_weapon_damage() avec les données d'exemple fournies.
- Enregistrez le fichier
calculate_weapon_damage.py. - Ouvrez un terminal et accédez au répertoire
/home/labex/project. - Exécutez le script
calculate_weapon_damage.py:
python calculate_weapon_damage.py
Vous devriez voir la sortie [3, 2], qui est le résultat attendu pour les données d'exemple données.
- Essayez de tester la fonction avec d'autres données d'entrée pour vous assurer qu'elle fonctionne correctement. Par exemple, vous pouvez essayer de passer
[4, 5, 22]et[3, 2, 14]pour voir si la fonction renvoie une liste vide[]en raison de l'entrée invalide.
Félicitations! Vous avez réussi à implémenter la fonction calculate_weapon_damage() pour calculer les valeurs de dégâts des deux armes lasers.
Résumé
Félicitations! Vous avez terminé ce projet. Vous pouvez pratiquer plus de laboratoires sur LabEx pour améliorer vos compétences.



