[Erste Versuche von mir] while-Schleife bricht ab

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
Bambie
User
Beiträge: 15
Registriert: Mittwoch 26. März 2008, 01:09

Mittwoch 26. März 2008, 01:17

Also ersteinmal hallo zusammen, oder guten abend/nacht, wie man es sehen will ;-)

Beschäftige mich nun seit ein paar Tagen mit Python und stehe nun vor einem Problem, was mir Kopfzerbrechen bereitet:

und zwar habe ich folgende while-Schleife:

Code: Alles auswählen

while points.isdigit():
    points = points[0:-1]
Teste ich folgendes danach:

Code: Alles auswählen

>>> print points
2610</b> <a 
>>> print points.isdigit()
False
Ich dachte immer schleifen würden solange laufen, bis die Bedinung erfüllt (true) wäre, überprüfe ich das, ist die Bedinung points.isdigit() immernoch falsch, wieso bricht er die Schleife denn dann trotzdem ab?

Ich hoffe ich habe mich verständlich ausgedrückt und die Lösung ist nicht zu einfach, habe sodnern schon den ganzen Tag rumgesucht :(

MFG Bambie
EyDu
User
Beiträge: 4871
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Mittwoch 26. März 2008, 01:42

Da hast du die "while"-Schleife falsch verstanden: Dessen Körper wirds solange durchlaufen, wie die Bedingung wahr ist. Das kann man sich ganz einfach merken, wenn man einfach mal "while" ins Deutsche übersetzt ;-)

In deinem Fall sollte ein "not" das Problem lösen:

Code: Alles auswählen

while not points.isdigit():
  points = points[:-1]
Benutzeravatar
jens
Moderator
Beiträge: 8481
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Mittwoch 26. März 2008, 07:59

@Bambie: Was willst du überhaupt machen? Aus einem String alle Zahlen extrahieren?

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Bambie
User
Beiträge: 15
Registriert: Mittwoch 26. März 2008, 01:09

Donnerstag 27. März 2008, 00:45

Hat geklappt, danke :)

Mein Programm soll den Seitenquelltext einer Homepage in eine Variable speichern und daraus ziehe ich die Infos. Zum Beispiel Account gültig bis xxxxx
Dabei lasse ich dann Wöter wie gültig rausfischen und bastle dann am String rum, bis ich nur meine Info habe :)

MFG Bambie
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Donnerstag 27. März 2008, 01:08

Bambie hat geschrieben:Dabei lasse ich dann Wöter wie gültig rausfischen und bastle dann am String rum, bis ich nur meine Info habe :)
Das ist dann Ausnahmsweise mal ein Fall bei dem Reguläre Ausdrücke nützlich sind. Du solltest überlegen sie einzusetzen.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
midan23
User
Beiträge: 116
Registriert: Sonntag 21. Mai 2006, 21:41
Wohnort: Müchen
Kontaktdaten:

Donnerstag 27. März 2008, 09:21

Da Reguläre Ausdrücke etwas komplex sind (vor allem, wenn man sie noch nie verwendet hat), kann man in diesem Fall auch BeautifulSoup verwenden ...
Jan-Peer
User
Beiträge: 166
Registriert: Dienstag 2. Oktober 2007, 10:55

Donnerstag 27. März 2008, 09:56

midan23 hat geschrieben:Da Reguläre Ausdrücke etwas komplex sind (vor allem, wenn man sie noch nie verwendet hat), kann man in diesem Fall auch BeautifulSoup verwenden ...
Mit der Herangehensweise wird man nie anfangen, sich mit ihnen zu beschäftigen ... :wink:

(Ich wollte damit nicht sagen, daß BeautifulSoup ein schlechter Ansatz ist)
BlackJack

Donnerstag 27. März 2008, 10:08

Man kann BS und REs auch verbinden. BS erlaubt an einigen Stellen auch kompilierte REs als Argumente.
Antworten