Python string in einzelne Ziffern zerlegen?

...komplette Frage anzeigen

1 Antwort

Das Einlesen geht z. B. so:

def fromString ( text, base ):
"Zeichenkette in eine Zahl wandeln."
result = 0
for c in text:
assert numerals.index(c)<base, "Ziffer "+c+" ist zu groß!"
result = result*base + numerals.index(c)
return result


base = int( input("Basis (dezimal):") )
text = input( "Ziffernfolge (0-9,A-Z,a-z): " )
number = fromString( text, base )
print( "Wert = ", number )

Achtung: In Python 2 musst Du die Ziffernfolge mit Anfürungszeichen eintippen (oder text=raw_input(...) schreiben).

Ausgeben kannst Du den Wert dann mit den Funktionen, die ich Dir hier präsentiert habe:

https://www.gutefrage.net/frage/python-integer-zerlegen#answer-228204926

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von ralphdieter
12.11.2016, 12:59

Gibt es noch andere Möglichkeiten als über einen array?

Da die Anzahl der Ziffern praktisch unbegrenzt ist, sind explizite Variablen für jede Stelle kaum sinnvoll.

Man kann in Python sowas zwar hintricksen, aber ich glaube nicht, das Du das wirklich willst:

for i,c in enumerate(text):
exec( "var"+str(i)+" = "+c )

print( var0 )
print( var1 )
print( var2 )

Wenn nur zwei Ziffern eingegeben wurden, knallt's in der letzten Zeile, weil var2 gar nicht existiert.

0

Was möchtest Du wissen?