wo stdin einbauen?

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

wo stdin einbauen?

Beitragvon Gisi » Dienstag 17. Januar 2006, 13:49

Hallo zusammen,

gleich vorneweg: Es geht um eine Hausaufgabe. Und zwar um diese hier:
http://www.cl.uni-heidelberg.de/kurs/ws ... latt10.pdf

Ich möchte davon die erste Aufgabe lösen und bin damit fast fertig. Was mir noch fehlt, ist der letzte Abschnitt, speziell der Einbau von "stdin".

So sieht mein Code bisher aus:

Code: Alles auswählen

import re
import sys

def evaluateExpressions(text):
   sys.stdout.write (re.sub('@[^@]+@', evaluateMatch, text)+"\n")
   
def evaluateMatch(match):
   try:
      return str(eval(re.sub('@', '', match.group(0))))
   except SyntaxError:
      return "XXX"


Hab mittlerweile so ziemlich alles versucht, im Channel wurde mir versucht zu helfen, aber ich kriegs einfach nicht hin. Wo und wie muss ich dieses verdammte "stdin" einbauen?

Ich hoffe man erkennt meine Eigeninitiative und dass ich es nicht darauf ausgelegt habe, die komplette Aufgabe von euch lösen zu lassen. Es geht mir, wie gesagt, lediglich um Tipps oder Hinweise, wie ich dieses verdammte stdin einbauen soll.

Gruß und danke im Vorraus,

Gisi
modelnine
User
Beiträge: 670
Registriert: Sonntag 15. Januar 2006, 18:42
Wohnort: Celle
Kontaktdaten:

Beitragvon modelnine » Dienstag 17. Januar 2006, 14:13

Probiers mal hiermit:

Code: Alles auswählen

import re
import sys

def evaluateExpressions(text):
    sys.stdout.write (re.sub('@[^@]+@', evaluateMatch, text)+"\n")
   
def evaluateMatch(match):
    try:
        return str(eval(re.sub('@', '', match.group(0))))
    except SyntaxError:
        return "XXX"

if __name__ == "__main__":
    while True:
        l = sys.stdin.readline()
        if not l:
            break
        evaluateExpressions(l)


--- Heiko.
Gisi

Beitragvon Gisi » Dienstag 17. Januar 2006, 14:30

Hey, wow, besten Dank. Theoretisch ungefähr so hab ich mir das bis kurz vor deiner Antwort schließlich vorgestellt, aber die Umsetzung wollte einfach nicht klappen. Aber ich kanns nun nachvollziehen. Dankeschön :D

Gisi
XT@ngel als Gast

Beitragvon XT@ngel als Gast » Dienstag 17. Januar 2006, 14:35

hi gisi,
bist Du mit der zweiten Aufgabe schon fertig?
Ich hab da nämlich eine Idee, und ich würde gerne sehen ob du das genauso gelöst hast wie ich denke..

MfG und Danke
Andreas

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder