Zerlegen eines Integers in Python

Gibt es in Python eine Möglichkeit, einen Integer in seine einzelnen Zahlen zu zerlegen, ohne den Wert in einen String umzuwandeln?

Uhr
Ja in Python gibt es eine einfache Möglichkeit einen Integer in seine einzelnen Zahlen zu zerlegen, ohne den Wert in einen String umzuwandeln. Dies kann durch die Verwendung der Funktion "divmod()" erreicht werden.

Die Funktion "divmod()" nimmt zwei Argumente entgegen, den zu teilenden Wert und den Teiler. Sie gibt ein Tupel zurück das den Quotienten und den Rest der Division enthält. Um den Integer in seine einzelnen Zahlen zu zerlegen, kann die "divmod()" Funktion iterativ verwendet werden.

Im gegebenen Beispiel soll der Integer 123 in die einzelnen Zahlen 1⸴2 und 3 zerlegt werden. Dies kann wie folgt erreicht werden:

```python
def zerlege_integer(zahl):
ziffern = []
while zahl:
zahl, ziffer = divmod(zahl, 10)
ziffern.insert(0, ziffer)
return ziffern

integer = 123
ergebnis = zerlege_integer(integer)
print(ergebnis)

Ausgabe: [1, 2⸴3]

```

In diesem Beispiel wird die Funktion "zerlege_integer()" definiert die den Integer als Argument nimmt und eine Liste von Ziffern zurückgibt. In der while-Schleife wird die "divmod()" Funktion verwendet um den Quotienten und den Rest der Division von "zahl" durch 10 zu erhalten. Der Rest ist die letzte Ziffer des Integers welche zur Liste "ziffern" hinzugefügt wird. Der Quotient wird dann zur weiteren Verarbeitung verwendet um die nächste Ziffer zu erhalten. Dies wird wiederholt – bis der Quotient 0 ist.

Das Ergebnis ist eine Liste von Ziffern die den ursprünglichen Integer repräsentieren. In diesem Fall ist das Ergebnis [1, 2⸴3].

Es ist wichtig anzumerken: Dass der Code sowie in Python 2 als ebenfalls in Python 3 funktioniert.

Es ist auch möglich die Ziffernliste in eine druckbare Zeichenkette umzuwandeln, ohne den Integer in einen String umzuwandeln. Dies kann durch die Verwendung einer Funktion wie "toString" erreicht werden:

```python
def toString(ziffern):
numerals = '0123456789'
return ''.join([numerals[ziffer] for ziffer in ziffern])

ergebnis_string = toString(ergebnis)
print(ergebnis_string)

Ausgabe: "123"

```

In diesem Beispiel wird die Funktion "toString()" definiert, die welche Liste von Ziffern in eine druckbare Zeichenkette umwandelt. Dazu wird eine Zeichenbank "numerals" definiert die die Ziffern von 0 bis 9 enthält. Die ".join()" Methode wird verwendet um die Zeichenkette aus den entsprechenden Ziffern zu erstellen.

Das Ergebnis ist die druckbare Zeichenkette "123".

Die Verwendung der "divmod()" Funktion ermöglicht es den Integer in seine einzelnen Zahlen zu zerlegen ohne den Wert in einen String umzuwandeln. Dies kann nützlich sein, wenn man mit den einzelnen Zahlen des Integers weiterarbeiten möchte, ohne den ursprünglichen Wert zu verlieren.






Anzeige