Tracks
/
Python
Python
/
Übungen
/
Größtes Serienprodukt
Größtes Serienprodukt

Größtes Serienprodukt

Mittel

Einführung

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.

Anleitung

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.

  • Eingabe: die Ziffernfolge, die du analysieren musst
  • Serie: eine Folge benachbarter Ziffern (also Ziffern, die direkt nebeneinander stehen), die in der Eingabe enthalten ist
  • Spanne: wie viele Ziffern lang jede Serie ist
  • Produkt: das, was du erhältst, wenn du Zahlen miteinander multiplizierst

Gehen wir ein Beispiel mit der Eingabe "63915" durch.

  • Um eine Serie zu bilden, nimmst du benachbarte Ziffern aus der ursprünglichen Eingabe.
  • Wenn du mit einer Spanne von 3 arbeitest, gibt es drei mögliche Serien:
    • "639"
    • "391"
    • "915"
  • Dann müssen wir das Produkt jeder Serie berechnen:
    • Das Produkt der Serie "639" ist 162 (6 × 3 × 9 = 162)
    • Das Produkt der Serie "391" ist 27 (3 × 9 × 1 = 27)
    • Das Produkt der Serie "915" ist 45 (9 × 1 × 5 = 45)
  • 162 ist größer als 27 und 45, also stammt das größte Serienprodukt von "63915" aus der Serie "639". Die Antwort ist also 162.

Fehlermeldungen

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")
Über GitHub bearbeiten Der Link öffnet sich in einem neuen Fenster oder Tab
Python Exercism

Bereit, mit Größtes Serienprodukt zu starten?

Melde dich bei Exercism an, um Python mit 17 Konzepte146 Übungen und echtem menschlichen Mentoring zu lernen und zu meistern, alles kostenlos.