Tracks
/
Python
Python
/
Übungen
/
Palindromprodukte
Palindromprodukte

Palindromprodukte

Mittel

Anleitung

Finde Palindromprodukte in einem gegebenen Bereich.

Eine Palindromzahl ist eine Zahl, die gleich bleibt, wenn man ihre Ziffern umdreht. Zum Beispiel ist 121 eine Palindromzahl, aber 112 nicht.

Gegeben ist ein Zahlenbereich. Finde darin das größte und das kleinste Palindromprodukt, das Produkt zweier Zahlen aus diesem Bereich ist.

Deine Lösung soll das größte und das kleinste Palindromprodukt zurückgeben, zusammen mit den Faktoren des jeweiligen Produkts innerhalb des Bereichs. Wenn das größte oder das kleinste Palindromprodukt mehr als ein Faktorenpaar innerhalb des Bereichs hat, gib alle Paare zurück.

Beispiel 1

Gegeben ist der Bereich [1, 9] (jeweils einschließlich) ...

Und gegeben ist die Liste aller möglichen Produkte in diesem Bereich: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 14, 16, 18, 15, 21, 24, 27, 20, 28, 32, 36, 25, 30, 35, 40, 45, 42, 48, 54, 49, 56, 63, 64, 72, 81]

Die Palindromprodukte sind (in diesem Fall) alle einstelligen Zahlen: [1, 2, 3, 4, 5, 6, 7, 8, 9]

Das kleinste Palindromprodukt ist 1. Seine Faktoren sind (1, 1). Das größte Palindromprodukt ist 9. Seine Faktoren sind (1, 9) und (3, 3).

Beispiel 2

Gegeben ist der Bereich [10, 99] (jeweils einschließlich) ...

Das kleinste Palindromprodukt ist 121. Seine Faktoren sind (11, 11). Das größte Palindromprodukt ist 9009. Seine Faktoren sind (91, 99).

Hinweise zur Implementierung von smallest und largest:

Beide Funktionen müssen zwei Schlüsselwortargumente entgegennehmen:

  • max_factor: int
  • min_factor: int, Standardwert 0

Ihr Rückgabewert muss ein tuple -- (value, factors) sein, wobei value das Palindrom selbst ist und factors ein iterable ist, das beide Faktoren des Palindroms in beliebiger Reihenfolge enthält.

Ausnahmemeldungen

Manchmal ist es notwendig, eine Ausnahme auszulösen. Wenn du das tust, solltest du immer eine aussagekräftige Fehlermeldung angeben, um deutlich zu machen, woher der Fehler stammt. Das macht deinen Code lesbarer und hilft erheblich beim Debuggen. Wenn du weißt, dass die Fehlerquelle von einem bestimmten Typ ist, kannst du eine der eingebauten Fehlertypen auslösen, solltest aber trotzdem eine aussagekräftige Meldung angeben.

Diese Übung erfordert, dass du die raise-Anweisung verwendest, um einen ValueError zu „werfen", wenn die Funktion largest() oder smallest() ein Faktorpaar erhält, das nicht im korrekten Bereich liegt. Die Tests bestehen nur, wenn du die exception mit raise auslöst und eine Meldung dazu angibst.

Um einen ValueError mit einer Meldung auszulösen, schreibst du die Meldung als Argument für den exception-Typ:

# if the max_factor is less than the min_factor
raise ValueError("min must be <= max")
Über GitHub bearbeiten Der Link öffnet sich in einem neuen Fenster oder Tab
Python Exercism

Bereit, mit Palindromprodukte zu starten?

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