Berechnung der Schaden von Laserwaffen

PythonPythonBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

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

Projektsumgebung einrichten

In diesem Schritt wirst du die Projektsumgebung einrichten und die erforderlichen Dateien für das Projekt ändern.

  1. Öffnen Sie die Datei calculate_weapon_damage.py in einem Texteditor.
  2. 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.

  1. Innerhalb der Datei calculate_weapon_damage.py definiere die calculate_weapon_damage()-Funktion mit der folgenden Signatur:
def calculate_weapon_damage(test1: List[int], test2: List[int]) -> List[int]:
    ## Dein Code hier
    pass
  1. 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 test1 und test2 die 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, total1 und a2, b2, total2.
    • Löse das lineare Gleichungssystem, um die Schadenswerte x (für Waffe A) und y (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- und y-Werte in Ganzzahlen und gib sie als Liste [x, y] zurück.
    • Wenn beim Lösen der Gleichungen ein ZeroDivisionError auftritt, 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)]
  2. 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.

  1. Speichere die Datei calculate_weapon_damage.py.
  2. Öffne ein Terminal und navigiere zum Verzeichnis /home/labex/project.
  3. Führe das Skript calculate_weapon_damage.py aus:
python calculate_weapon_damage.py

Du solltest die Ausgabe [3, 2] sehen, was das erwartete Ergebnis für die angegebenen Beispiel-Daten ist.

  1. 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.

✨ Lösung prüfen und üben

Zusammenfassung

Glückwunsch! Du hast dieses Projekt abgeschlossen. Du kannst in LabEx weitere Labs absolvieren, um deine Fähigkeiten zu verbessern.