Einführung
In diesem Projekt lernst du, wie du die Schadenswerte zweier hochleistungsfähiger Laserwaffen, die von der Waffenforschungseinrichtung des Galaktischen Reiches entwickelt wurden, berechnen kannst. Das Waffenausrüstungslabor ist für die Prüfung der Waffenwerte verantwortlich, und du wirst ihnen dabei helfen, indem du den Schadensberechnungsprozess implementierst.
$ python calculate_weapon_damage.py
[3, 2]
🎯 Aufgaben
In diesem Projekt wirst du lernen:
- Wie du die Projektumgebung einrichtest und die erforderlichen Dateien erstellst
- Wie du die
calculate_weapon_damage()-Funktion implementierst, um die Schadenswerte der beiden Laserwaffen zu berechnen - Wie du die
calculate_weapon_damage()-Funktion mit den bereitgestellten Beispiel-Daten testest
🏆 Errungenschaften
Nach Abschluss dieses Projekts wirst du in der Lage sein:
- Die Problemstellung und die Anforderungen für die Laserwaffenschadensberechnung zu verstehen
- Eine Funktion zur Lösung eines linearen Gleichungssystems zu implementieren und die Schadenswerte der Laserwaffen zu berechnen
- Die implementierte Funktion mit unterschiedlichen Eingabedaten zu testen, um sicherzustellen, dass sie korrekt funktioniert
- Deine Problemlöse- und Programmierfähigkeiten auf eine reale Weltsszene anzuwenden
Projektumgebung einrichten
In diesem Schritt wirst du die Projektsumgebung einrichten und die erforderlichen Dateien für das Projekt ändern.
- Öffnen Sie die Datei
calculate_weapon_damage.pyin einem Texteditor. - Fügen Sie am Anfang der Datei den folgenden Import-Befehl hinzu:
from typing import List
Dadurch können Sie den List-Typbezeichner in Ihrem Code verwenden.
Implementiere die calculate_weapon_damage()-Funktion
In diesem Schritt wirst du die calculate_weapon_damage()-Funktion implementieren, um die Schadenswerte der beiden Laserwaffen zu berechnen.
- Innerhalb der Datei
calculate_weapon_damage.pydefiniere diecalculate_weapon_damage()-Funktion mit der folgenden Signatur:
def calculate_weapon_damage(test1: List[int], test2: List[int]) -> List[int]:
## Dein Code hier
pass
Implementiere die Logik, um die Schadenswerte von Waffe A und Waffe B zu berechnen. Du kannst die folgenden Schritte als Leitfaden verwenden:
- Überprüfe, ob die Eingabe-Arrays
test1undtest2die richtige Länge haben (jeweils 3 Elemente). Wenn nicht, gib eine leere Liste[]zurück. - Entpacke die Werte aus den Eingabe-Arrays in Variablen
a1,b1,total1unda2,b2,total2. - Löse das lineare Gleichungssystem, um die Schadenswerte
x(für Waffe A) undy(für Waffe B) zu finden. Du kannst die folgenden Gleichungen verwenden:
a1 * x + b1 * y = total1 a2 * x + b2 * y = total2- Konvertiere die berechneten
x- undy-Werte in Ganzzahlen und gib sie als Liste[x, y]zurück. - Wenn beim Lösen der Gleichungen ein
ZeroDivisionErrorauftritt, gib eine leere Liste[]zurück.
Der Code lautet wie folgt:
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)]- Überprüfe, ob die Eingabe-Arrays
Füge den folgenden Code am Ende der Datei hinzu, um die
calculate_weapon_damage()-Funktion zu testen:
if __name__ == "__main__":
print(calculate_weapon_damage([4, 5, 22], [3, 2, 13]))
Dies wird die berechneten Schadenswerte ausgeben, wenn du das Skript ausführst.
Teste die calculate_weapon_damage()-Funktion
In diesem Schritt wirst du die calculate_weapon_damage()-Funktion mit den bereitgestellten Beispiel-Daten testen.
- Speichere die Datei
calculate_weapon_damage.py. - Öffne ein Terminal und navigiere zum Verzeichnis
/home/labex/project. - Führe das Skript
calculate_weapon_damage.pyaus:
python calculate_weapon_damage.py
Du solltest die Ausgabe [3, 2] sehen, was das erwartete Ergebnis für die angegebenen Beispiel-Daten ist.
- Versuche, die Funktion mit anderen Eingabedaten zu testen, um sicherzustellen, dass sie korrekt funktioniert. Beispielsweise kannst du versuchen,
[4, 5, 22]und[3, 2, 14]zu übergeben, um zu sehen, ob die Funktion aufgrund der ungültigen Eingabe eine leere Liste[]zurückgibt.
Glückwunsch! Du hast die calculate_weapon_damage()-Funktion erfolgreich implementiert, um die Schadenswerte der beiden Laserwaffen zu berechnen.
Zusammenfassung
Glückwunsch! Du hast dieses Projekt abgeschlossen. Du kannst in LabEx weitere Labs absolvieren, um deine Fähigkeiten zu verbessern.



