Seite 1 von 1

wo stdin einbauen?

Verfasst: Dienstag 17. Januar 2006, 13:49
von Gisi
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

Verfasst: Dienstag 17. Januar 2006, 14:13
von modelnine
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.

Verfasst: Dienstag 17. Januar 2006, 14:30
von Gisi
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

Verfasst: Dienstag 17. Januar 2006, 14:35
von XT@ngel als Gast
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