1. Liebe Forumsgemeinde,

    aufgrund der Bestimmungen, die sich aus der DSGVO ergeben, müssten umfangreiche Anpassungen am Forum vorgenommen werden, die sich für uns nicht wirtschaftlich abbilden lassen. Daher haben wir uns entschlossen, das Forum in seiner aktuellen Form zu archivieren und online bereit zu stellen, jedoch keine Neuanmeldungen oder neuen Kommentare mehr zuzulassen. So ist sichergestellt, dass das gesammelte Wissen nicht verloren geht, und wir die Seite dennoch DSGVO-konform zur Verfügung stellen können.
    Dies wird in den nächsten Tagen umgesetzt.

    Ich danke allen, die sich in den letzten Jahren für Hilfesuchende und auch für das Forum selbst engagiert haben. Ich bin weiterhin für euch erreichbar unter tti(bei)pcwelt.de.
    Dismiss Notice

Python Problem

Discussion in 'Programmieren' started by Silvestergirly, Mar 3, 2014.

Thread Status:
Not open for further replies.
  1. Hallo liebes Forum, ich bin neu hier und eigentlich was Computer und Technick anbelangt nicht so talentiert.
    Da wir aber gerade mit Python in der Schule arbeiten und ich nicht weiter komme, wollte ich mein Problem hier präsenz machen.

    Vom Lehrer haben wir Pthoncode bekommen, (der in der Schule auch funktionierte) in den wir eine Klasse einfügen und ein Objekt erstellen sollen. Das Was ich groß geschrieben habe, ist das, was ich selber einfügen sollte.

    Folgendes Problem. Ich verstehe einfach nicht, dass die Ursprungsdatei, ohne "Überschrift" bei mir auf den Rechner einfach nicht funktionieren soll. So haben wir sie ja bekommen und funktionierte sie auch auf den Rechnern in der Schule aber irgendwie auf meinem Pc nicht und ich habe so viel schon durchgeforstet etc und verstehe das Problem einfach nicht. Sind es falsche anführungszeichen? Irgendetwas falsch? Ich weis es nicht :(
    Stimmt was mit meinem Programm nicht?
    Es kommt immer die Meldung "Syntax-Error"


    Würde mich riesig freuen, wenn mir da einer helfen kann, der sich mit dem Programm auskennt!!!

    # Objektorientierte Modellierung eines HTML-Dokuments
    #
    # 1. Klassendefinitionen (Klassen sind Bauplaene fuer Objekte)
    # 2. Objekte erzeugen (Klassen werden benutzt um Objekte zu erzeugen)
    #

    # Objektorientierte Modellierung eines HTML-Dokuments
    #
    # 1. Klassendefinitionen (Klassen sind Bauplaene fuer Objekte)
    # 2. Objekte erzeugen (Klassen werden benutzt um Objekte zu erzeugen)
    #

    #
    # 1. Klassendefinitionen (Klassen sind Bauplaene fuer Objekte)
    #
    Code:
    class HTMLDokument:
        def __init__(self):
            self.head = ''
            self.body = ''
        def setzeHead(self,h):
            self.head = h
        def setzeBody(self,b):
            self.body = b
        def schreibeHTML(self):
            print '<html>'
            self.head.schreibeHTML()
            self.body.schreibeHTML()
            print '</html>'
    
    class Head:
        def __init__(self):
            self.titel = ''
        def setzeTitel(self,t):
            self.titel = t
        def schreibeHTML(self):
            print '<head>'
            self.titel.schreibeHTML()
            print '</head>'
    
    
    class Titel:
        def __init__(self):
            self.text = ''
        def setzeText(self,t):
            self.text = t
        def schreibeHTML(self):
            print '<title>'
            print self.text
            print '</title>'
    
    
    class Body:
        def __init__(self):
            self.ueberschrift = ''
            self.absatz1 = ''
        def setzeUeberschrift(self,u):
            self.ueberschrift = u
        def setzeAbsatz1(self,a1):
            self.absatz1 = a1    
        def schreibeHTML(self):
            print '<body>'
            #self.uberschrift.schreibeHTML()
            self.absatz1.schreibeHTML()
            print '</body>'
    
    # ACHTUNG: Klasse Ueberschrift fehlt !!!!
    [B][I][SIZE=5]
    class Ueberschrift:
        def _init_(self):
            self.text = ''
        def setzeText(self,t):
            self.text = t
        def schreibeHTML(self):
            print '<h>'
            print self.text
            print'</h>'
    
    [/SIZE][/I][/B]
    class Absatz:
        def __init__(self):
            self.text = ''
        def setzeText(self,t):
            self.text = t
        def schreibeHTML(self):      
            print '<p>'
            print self.text
            print '</p>'
    
    
    #
    # 2. Objekte erzeugen (Klassen werden benutzt um Objekte zu erzeugen)
    #
    
    dok = HTMLDokument()
    
    my_head = Head()
    
    t = Titel()
    
    t.setzeText('Das ist mein Titel fuer das erzeugte HTML-Dokument')
    my_head.setzeTitel(t)
    
    my_body = Body()
    derUrlaub=Ueberschrift()
    derUrlaub.setzeText()
    a = Absatz()
    a.setzeText('Der erste Absatz meine Dokuments. Leider ist es nicht so leicht Umlaute in Python und HTML korrekt einzugeben daher nur ae, ue, oe und ss.')
    my_body.setzeAbsatz1(a)
    
    
    dok.setzeHead(my_head)
    dok.setzeBody(my_body)
    
    
    dok.schreibeHTML()
    
     
    Last edited: Mar 3, 2014
  2. root

    root Megabyte

    Poste den Quelltext bitte in CODE-Tags, also [CODE]Quelltext[/CODE]. Bei Python ist die Einrückung, welche ansonsten beim Posten im Forum entfernt wird, wichtig.
     
  3. Hallo
    Danke für den Hinweis. Ich habe es so gleich geändert!
     
  4. root

    root Megabyte

    Wenn ich den Code mit Python 3.3 ausführe, wird diese Fehlermeldung ausgegeben:
    Code:
      File "test.py", line 10
        print '<html>'
                     ^
    SyntaxError: invalid syntax
    Python 2.7 akzeptiert die problematische Zeile dagegen. Vermutlich ist an deiner Schule Python 2 installiert, während du Python 3 verwendest. Man könnte den Code nun umschreiben, damit er mit Version 3 funktioniert, allerdings wäre es vermutlich einfacher, wenn du Python 3 durch 2 ersetzt.
    Diese Zeile wird übrigens auch beanstandet. Es fehlt der notwendige Parameter.
     
    Last edited: Mar 3, 2014
  5. Ich habe mir jetzt eine ältere version von python runtergeladen, die du mir gesagt hast.

    jetzt kommt aber wieder error
    "There's an error in your program,
    expected an indented block"

    was bedeutet das ?XD

    PS: nu mit python 2.7.2
     
  6. root

    root Megabyte

    Wird eine Zeilennummer angegeben? Hast du den Code im Vergleich zu Beitrag #1 verändert?
     
  7. Python 2.7.2 (default, Jun 12 2011, 15:08:59) [MSC v.1500 32 bit (Intel)] on win32
    Type "copyright", "credits" or "license()" for more information.
    >>> ================================ RESTART ================================
    >>>
    >>>


    Das bekomme ich jetzt, nachdem ich nochmal alles hin und her..

    das ist doch richtig oder? ich habe ja die klassen erstellt, aber noch kein objekt, daher kommt da doch nur das fenster, richtig?
     
  8. root

    root Megabyte

    Wie es aussieht, hast du Python im interaktiven Modus gestartet. Wie genau versuchst du das Python-Script auszuführen?
     
Thread Status:
Not open for further replies.

Share This Page