eine Zahl trennen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
G.S.
User
Beiträge: 2
Registriert: Sonntag 20. November 2005, 18:50

Hallo zusammen,
Ich würde gerne eine vierstellige Zahl trennen. Und zwar so ,dass die ersten zwei Zahlen die erste Zahl und die beiden letzten Zahlen die zweite Zahl ergeben.
Beispiel: Zahl 1588
Dann soll die erste Zahl 15 sein und die zweite 88.
Danke für eure Hilfe!
Benutzeravatar
Mawilo
User
Beiträge: 452
Registriert: Sonntag 22. Februar 2004, 10:58
Wohnort: Sachsen
Kontaktdaten:

Code: Alles auswählen

>>> x = 1588
>>> print str(x)[0:2]
15
>>> print str(x)[2:]
88
>>> 
Andy
User
Beiträge: 196
Registriert: Sonntag 1. Januar 2006, 20:12
Wohnort: aus dem hohen Norden....

Hallo G.S.,

ich weiß zwar nicht wofür Du das brauchst (wo ist der Code :evil: ), dass einfachste ist jedoch die Zuordnung der Zahlen zu Variablen.

Etwa so:

Code: Alles auswählen

>>> a = 15
>>> b = 88
>>> print a, b
15 88
Gruss andy
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Ich hätte noch eine ein klein wenig universellere Lösung mit Generatoren die Zahlen in 2er Stückchen zersägt.

Code: Alles auswählen

#!/usr/bin/python
# -*- encoding: latin-1 -*- 
import re

def fragmentate(number):
    two = re.compile(r'\d\d?')
    for fragment in two.findall(str(number)):
        yield int(fragment)
        
print list(fragmentate(1588))
print list(fragmentate(15881))
Allerdings kommt bei Zahlen die eine ungerade anzahl Zeichen lang sind am Schluss noch ein 1er Stückchen raus (wenn du im regulären Ausdruck das Fragezeichen wegnimmst, gibts dann kein 1er-Stückchen mehr, es wird dann ignoriert). Na, ist nur so eine Spielerei, hängt ab, was du brauchst.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Joghurt
User
Beiträge: 877
Registriert: Dienstag 15. Februar 2005, 15:07

Oder auch:

Code: Alles auswählen

zahl = 1588
a = zahl/100
b = zahl%100
Oder

Code: Alles auswählen

zahl =1588
a,b = divmod(zahl,100)
modelnine
User
Beiträge: 670
Registriert: Sonntag 15. Januar 2006, 18:42
Wohnort: Celle
Kontaktdaten:

Oder als Generator mit ein bisschen Rumgehacke und allgemeiner in dem Sinn dass er nicht nur Strings akzeptiert, sondern auch jede beliebige Sequence:

Code: Alles auswählen

def split(seq,step):
    return list("".join(r) for r in itertools.izip(*list(itertools.islice(seq,n,len(seq),step) for n in range(step))))
--- Heiko.
Antworten