Du arbeitest für eine Regierungsbehörde, die eine Reihe verschlüsselter Kommunikationssignale einer Gruppe von Bankräubern abgefangen hat. Die Signale enthalten eine lange Folge von Ziffern. Dein Team muss verschiedene Techniken der digitalen Signalverarbeitung einsetzen, um die Signale zu analysieren und Muster zu erkennen, die auf die Planung eines Raubüberfalls hindeuten könnten.
Deine Aufgabe ist es, in der langen Ziffernfolge des verschlüsselten Signals nach Mustern zu suchen.
Die Technik, die du hier verwendest, nennt man das größte Serienprodukt.
Definieren wir zuerst ein paar Begriffe.
Gehen wir ein Beispiel mit der Eingabe "63915" durch.
3 arbeitest, gibt es drei mögliche Serien:
"639""391""915""639" ist 162 (6 × 3 × 9 = 162)"391" ist 27 (3 × 9 × 1 = 27)"915" ist 45 (9 × 1 × 5 = 45)"63915" aus der Serie "639".
Die Antwort ist also 162.Manchmal ist es notwendig, eine Exception auszulösen. Wenn du das tust, solltest du immer eine aussagekräftige Fehlermeldung angeben, die zeigt, wo die Fehlerquelle liegt. Das macht deinen Code lesbarer und erleichtert das Debugging erheblich. Wenn du weißt, dass die Fehlerquelle von einem bestimmten Typ ist, kannst du einen der eingebauten Fehlertypen auslösen, solltest aber trotzdem eine aussagekräftige Nachricht angeben.
Diese Übung erfordert, dass du mit der raise-Anweisung einen ValueError „wirfst“, wenn deine Funktion largest_product() ungültige Eingabewerte erhält. Die Tests bestehen nur, wenn du die exception sowohl mit raise auslöst als auch eine Nachricht mitgibst. Du kannst deinen Code aus der Übung series gerne wiederverwenden!
Um einen ValueError mit einer Nachricht auszulösen, schreibst du die Nachricht als Argument an den Typ exception:
# span of numbers is longer than number series
raise ValueError("span must not exceed string length")
# span of number is negative
raise ValueError("span must not be negative")
# series includes non-number input
raise ValueError("digits input must only contain digits")
Melde dich bei Exercism an, um Python mit 17 Konzepte146 Übungen und echtem menschlichen Mentoring zu lernen und zu meistern, alles kostenlos.