Python string in einzelne Ziffern zerlegen?

2 Antworten

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


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

so :

Zahl = input()#erstmal etwas eingeben

a = Zahl[0]
if len(Zahl) => 2 :
  a = Zahl[1]
if len(Zahl) => 3 :
  a = Zahl[2]
if len(Zahl) => 4 :
  a = Zahl[3]
if len(Zahl) => 4 :
  a = Zahl[4]



usw.

Woher ich das weiß:Hobby