Python! 3 Zahlen nach Zeichenkette auslesen?

3 Antworten

Wenn das Schema immer 1-x Wörter und am Ende die Zahl ist dann ginge das so:

inp = "blab lub foo 123"
tmp = inp.split(" ")
zahl = tmp[-1]
print(zahl)

Steht die Zahl in der Mitte kannst du den String splitten und dann jedes Element überprüfe ob es eine Zahl ist:

inp = "blab blub 123 foo"
tmp = inp.split(" ")
for elem in tmp:
    if elem.isnumeric():
        zahl = elem
        break
print(zahl)

Wenn die Zahl irgendwo "andockt"

inp = "blab blub123 foo"
zahl = ""
for char in inp:
    if ord(char) in range(49, 58):
        zahl += char
print(zahl)

...musst du Zeichen für Zeichen überprüfen ob es eine Zahl ist. ord() ist hier dein Freund...

Jede der Methoden wird als print()-Ausgabe 123 liefern.

Jede der Methoden arbeitet nicht 100% perfekt wenn die Eingabe "bla 12 blub 134" wäre. Da würde die erste Variante 134, die zweite 12 und die dritte 12134 liefern.

Du solltest also sicher sein, dass nur eine Zahl darin vorkommt!

Woher ich das weiß:Berufserfahrung – Softwareentwickler f. Web, Win. & Linux (seit 2001)

a) Verwende Regular Expressions.

b) Splitte den String anhand des Leerzeichens (Trenner). Wenn eine Eingabe nun tatsächlich immer aus zwei Zeilen besteht, kannst du schauen, ob der letzte Eintrag einer Zahl entspricht.

Wenn du von jeder Zeile die Zahl haben möchtest, laufe durch die gesamte Liste und prüfe die Werte, so wie du es brauchst.

Die Zeichenkette, nach der gesucht wird, sollte 6777Recieved sein. Das 6777 ist erforderlich.


Mark Berger  13.01.2019, 17:50

Variante 3 meiner Code-Snippets...

PS: abgesehen von ord() solltest du auch isdigit() verwenden können bei der Überprüfung der einzelnen Zeichen

0