Python Challenge Aufgabe 3

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
anymagical
User
Beiträge: 33
Registriert: Montag 2. April 2012, 15:34

Servus,

bin gerade dabei mich durch die Challenge zu arbeiten. 0 und 1 gingen ja noch :D
In der 3 Aufgabe heißt es:

One small letter, surrounded by EXACTLY three big bodyguards on each of its sides

Mit:

Code: Alles auswählen

for char in string.ascii_lowercase:
    y=x.find(char)
    if ord(x[y-3])<=90 and ord(x[y-2])<=90 and ord(x[y-1])<=90 and ord(x[y+3])<=90 and ord(x[y+2])<=90 and ord(x[y+1])<=90:
        print x[y]
zeigt er mir keinen einzigen kleinen Buchstaben an. Wo ist denn da der Wurm drinnen, abgesehen vom 6*"and" :D

Denke ich in die falsche Richtung? FGHkAJH so stelle ich es mir vor.

MfG
Anymagical
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Ich nehme mal an, dass ein Text vorliegt, den du in x gespeichert hast? Dann suchst du mittels finde nur nach dem ersten Kleinbuchstaben und ignorierst alle späteren. Viel einfacher ginge das übrigen mit regulären Ausdrücken.
Das Leben ist wie ein Tennisball.
anymagical
User
Beiträge: 33
Registriert: Montag 2. April 2012, 15:34

Genau in x sind cirka 100000 byte

Habe mir jetzt das modul re angeschaut. Nun habe ich

Code: Alles auswählen

f=r"[A-Z]{3}[a-z]{1}[A-Z]{3}"
if re.search(f,x) != None:
    print re.match
gibt mir eine Adresse im Speicher(?) aus.
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Kein Wunder, wenn du nicht das Ergebnis von re.search speicherst, sondern auf die match-Methode im re-Modul zugreifst ;-)
Das Leben ist wie ein Tennisball.
anymagical
User
Beiträge: 33
Registriert: Montag 2. April 2012, 15:34

:shock:

m=re.search
print m.group(0)

Vielen Dank für die Hilfe und den Tip mit dem Modul!
BlackJack

@anymagical: Wobei man da auch ganz gut mit `re.findall()` arbeiten kann.
karolus
User
Beiträge: 145
Registriert: Samstag 22. August 2009, 22:34

Hallo
Python_Challenge_Beschreibung hat geschrieben:One small letter, surrounded by EXACTLY three big bodyguards on each of its sides
Es gibt einen Grund dafür das 'EXACTLY' gross geschrieben wurde...

Karo
BlackJack

@karolus: Ich denke mal ja.
Benutzeravatar
/me
User
Beiträge: 3561
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

karolus hat geschrieben:Es gibt einen Grund dafür das 'EXACTLY' gross geschrieben wurde...
Dann muss man den regulären Ausdruck wohl noch mit negative lookahead und negative lookbehind anreichern.
karolus
User
Beiträge: 145
Registriert: Samstag 22. August 2009, 22:34

Hallo
BlackJack hat geschrieben:@karolus: Ich denke mal ja.
@BlackJack:
Ich meinte das als Hinweis, nicht als Frage.

Karo
Benutzeravatar
mkesper
User
Beiträge: 919
Registriert: Montag 20. November 2006, 15:48
Wohnort: formerly known as mkallas
Kontaktdaten:

Ja, obwohl ich den Umgang mit dem re-Modul nicht unbedingt als typisch pythonisch bezeichnen würde, zielen zumindest einige der Aufgaben stark darauf ab.
Antworten