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

Dienstag 17. Januar 2006, 18:41

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: 446
Registriert: Sonntag 22. Februar 2004, 10:58
Wohnort: Sachsen
Kontaktdaten:

Dienstag 17. Januar 2006, 19:14

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....

Dienstag 17. Januar 2006, 19:18

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
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Dienstag 17. Januar 2006, 19:35

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 Modvoice
Joghurt
User
Beiträge: 877
Registriert: Dienstag 15. Februar 2005, 15:07

Dienstag 17. Januar 2006, 19:36

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:

Dienstag 17. Januar 2006, 20:21

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