ich möchte in Python die zahl 58 in den einer und den Zehner verlegen, wie geht das?

4 Antworten

Mit a//10 erhält man den Teiler bei Division von a durch 10 mit Rest.
Im konkreten Fall erhält man dann 58//10 = 5.

Mit a % 10 erhält man den Rest bei Division von a durch 10 mit Rest.
Im konkreten Fall erhält man dann 58 % 10 = 8.

zweistelligeZahl = 58

zehner = zweistelligeZahl // 10
einer = zweistelligeZahl % 10

Wenn du dir jedoch nicht sicher sein kannst, dass die Zahl sicher zweistellig ist, solltest du überlegen, was du in solch einem abweichenden Fall machen möchtest. Also was wäre, wenn man die Zahl 258 hätte. Soll die dann in Hunderter, Zehner, Einer zerlegt werden? Soll dann die 2 ignoriert werden und einfach 5 als Zehner und 8 als Einer geliefert werden? Oder, wie es in dem Beispielcode der Fall wäre, soll dann die Zahl einerseits in den Einer 8 und andererseits in die Zahl 25 vor dem Einer zerlegt werden? Oder soll dann einfach ein Fehler gemeldet werden und das Programm gegebenenfalls abbrechen?

============

Eine andere Möglichkeit, die mir noch eingefallen ist. Du könntest die Zahl in einen String umwandeln und dann die letzten beiden Zeichen des Strings betrachten.

zweistelligeZahl = 58

zahlAlsString = str(zweistelligeZahl)
einer = int(zahlAlsString[-1])
zehner = int(zahlAlsString[-2])

Auch da solltest du dir vielleicht Überlegen, was passieren soll, wenn du nicht sicher sein kannst, dass es eine zweistellige Ganzzahl ist.

>>> divmod(58,10)
(5, 8)

entsprechend:

>>> zehner,einer=divmod(58,10)
>>> zehner
5
>>> einer
8

Die Zahl 58 besteht aus 5 Zehnern und 8 Einern.

Ein anderes Beispiel:

Die Zahl 538 besteht aus 5 Hundertern, 3 Zehnern und 8 Einern.


skiddy  17.09.2021, 10:35

Das war nicht die Frage.

0
verreisterNutzer  17.09.2021, 10:39
@skiddy

Ich habe deine Frage glaube ich nicht gründlich genug gelesen. Aber du hast einige sehr hilfreiche Antworten bekommen. Tut mir Leid, wenn meine Antwort nicht hilfreich war.

0

Verlegen oder Zerlegen?

58 = 5 * 10^1 + 8 * 10^0


DerEinsiedler  17.09.2021, 08:52

... nach dem Du was von Programmieren geschrieben hast (schreib das doch in die Frage).

58 : 10 = 5 Rest 8

In Programiersprachen gibt es dazu die Operatoren div und modulo.

Musst halt schauen, wie die in deiner Sprache heißen. In den C-Sprachen sind das / und %

0