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!
eine Zahl trennen
- Mawilo
- User
- Beiträge: 454
- 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
>>>
-
- 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
), dass einfachste ist jedoch die Zuordnung der Zahlen zu Variablen.
Etwa so:
Gruss andy
ich weiß zwar nicht wofür Du das brauchst (wo ist der Code

Etwa so:
Code: Alles auswählen
>>> a = 15
>>> b = 88
>>> print a, b
15 88
-
- 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.
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.
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))
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Oder auch:
Oder
Code: Alles auswählen
zahl = 1588
a = zahl/100
b = zahl%100
Code: Alles auswählen
zahl =1588
a,b = divmod(zahl,100)
-
- 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:
--- Heiko.
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))))