Anzeige(1)

  • Liebe Forenteilnehmer,

    Im Sinne einer respektvollen Forenkultur, werden die Moderatoren künftig noch stärker darauf achten, dass ein freundlicher Umgangston untereinander eingehalten wird. Unpassende Off-Topic Beiträge, Verunglimpfungen oder subtile bzw. direkte Provokationen und Unterstellungen oder abwertende Aussagen gegenüber Nutzern haben hier keinen Platz und werden nicht toleriert.

Brauche dringend HILFE beim Programmieren!!!! PYTHON

Aus dem Gesagten würde ich eventuell vermuten, dass die angemeckerte Stelle eingerückt werden muss. Python verwendet statt Klammern Einrückungen, oder?
 
soooo vielen dank,
er sagt kein error mehr ^_____________

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 ================================
>>>
>>>


Es ist doch richtig, das da noch nichts steht oder? weil ich ja noch kein Objekt erstellt habe oder?
 
Wenn du kein Objekt erstellst, wird auch keine print-Methode aufgerufen, daher kann auch nichts dort stehen, richtig.
 
SOOO versuche nun ein Objekt zu erstellen und es funkst irgendwie nicht
frown.gif
findet einer den Fehler?




class HTMLDokument:
def __init__(self):
self.head = ''
self.body = ''
def setzeHead(self,h):
self.head = h
def setzeBody(self,b):
self.body = b
def setzeUeberschruft(self,u):
self.ueberschrift = u
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.absatz1.schreibeHTML()
print '</body>'

class Absatz:
def _init_(self):
self.text=''
def setzeText(self,t):
self.text = t
def schreibeHTML(self):
print'<p>'
print self.text
print'</p>'


class Ueberschrift:
def _init_(self):
self.text = ''
def setzeText(self,t):
self.text = t
def schreibeHTML(self):
print'<h>'
print self.text
print'</h>'





dok = HTMLDokument()
my_head = Head()
t=Titel()
hans=Titel()

t.setzeText('I know where your house is living')
my_head.setzeTitel(t)

my_body = Body()
bestederbestensein = Ueberschrift()
bestederbestensein.setzeText('hallo')
a1 = Absatz()
a1.setzeText('Der Teufel traegt Prada')
 
Hi,

bei Fragen zur Programmiererei ist es üblich:

a) Genaue Fehlermeldungen mit allen zur Verfügung stehenden Infos zu posten
b) Sagen, was genau man bereits versucht hat bzw überhaupt gemacht hat oder vor hat

Möchte ja jetzt nicht böse sein - aber aktuell wirkst du auf mich schlicht zu faul um es selbst zu tun...

Und jetzt: Straf mich Lügen ;-)

LG

Edit:
PS: Grundsätzlich funktioniert dein Code - mit entsprechender Einrückung lässt dieser sich durchaus kompilieren. Auch deine Erzeugung von Objekte ist durchaus funktionsfähig.

Allerdings gebietet die Logik eine gewisse Reihenfolge bei der Erzeugung der Objekte, die sich dir sofort erschließen würde, wenn du dir den Code genauer anschauen und verstehen würdest.

Grundsätzlich:
Dokument erzeugen ->
Head erzeugen + hinzufügen (Dokument) ->
Titel erzeugen + belegen + hinzufügen(Head) ->
Body erzeugen + hinzufügen (Dokument) ->
Absatz erzeugen + belegen + hinzufügen (Body) ->
Überschrift erzeugen + belegen + hinzufügen (Body) ->
Html schreiben (Dokument)

Programmieren ist sehr logisch... Und wenn du deinem Dokument (wie aktuell) halt keinen Absatz hinzufügst - dann wird halt auch einfach nix passieren...
 
Zuletzt bearbeitet:
es geht irgendwie nicht 🙁

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.ueberschrift.setzeHTML()
self.absatz1.schreibeHTML()
print '</body>'


class Ueberschrift:
def _init_(self):
self.text = ''
def setzeText(self,t):
self.text = t
def schreibeHTML(self):
print '<h>'
print self.text
print'</h>'


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()
hans = Titel()

t.setzeText('Das ist mein Titel fuer das erzeugte HTML-Dokument')
my_head.setzeTitel(t)

my_body = Body()
derUrlaub=Ueberschrift()
derUrlaub.setzeText('Hey')
a1 = Absatz()
a1.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(a1)


dok.setzeHead(my_head)
dok.setzeBody(my_body)


dok.schreibeHTML()
 
Ich empfinde deine Faulheit als Frechheit. Ganz ehrlich.

Da du des Lesens offensichtlich nur halb mächtig bist - folgender Fehler:

File "main.py", line 100, in dok.schreibeHTML() File "main.py", line 12, in schreibeHTML self.body.schreibeHTML() File "main.py", line 47, in schreibeHTML self.ueberschrift.setzeHTML()AttributeError: 'str' object has no attribute 'setzeHTML'

Übersetzt heisst das: Die Klasse Ueberschrift hat keine Methode names setzeHTML - was du möchtest an dieser Stelle heisst "schreibeHTML" - auch das wird allerdings nicht funktionieren, da dein Body nach deinem aktuellen Code noch keine gesetzte Überschrift hat.Ich klinke mich an dieser Stelle aus mit weiterer Hilfe - diese hast du ohne eigenen Einsatz nämlich nicht verdient.LG
 
Ich empfinde deine Faulheit als Frechheit. Ganz ehrlich.

Da du des Lesens offensichtlich nur halb mächtig bist - folgender Fehler:

File "main.py", line 100, in dok.schreibeHTML() File "main.py", line 12, in schreibeHTML self.body.schreibeHTML() File "main.py", line 47, in schreibeHTML self.ueberschrift.setzeHTML()AttributeError: 'str' object has no attribute 'setzeHTML'

Übersetzt heisst das: Die Klasse Ueberschrift hat keine Methode names setzeHTML - was du möchtest an dieser Stelle heisst "schreibeHTML" - auch das wird allerdings nicht funktionieren, da dein Body nach deinem aktuellen Code noch keine gesetzte Überschrift hat.Ich klinke mich an dieser Stelle aus mit weiterer Hilfe - diese hast du ohne eigenen Einsatz nämlich nicht verdient.LG



faulheit???!!! das muss ich mir nicht bieten lassen, ich arbeite täglich daran es zu verstehem, sry das ich von sowas nicht so viel ahnung habe , auch schon viel im inet drüber gelesen have, es aber nicht ganz verstehe ubd mir hier hilfe hole. wenn die das nicht passt dann antworte doch einfach nicht
 

Anzeige (6)

Autor Ähnliche Themen Forum Antworten Datum
G Nachhilfeschüler ist extrem ruhig und lehnt Hilfe ab. Was tun? Schule 20

Ähnliche Themen

Anzeige (6)

Anzeige(8)

Regeln Hilfe Benutzer

Du bist keinem Raum beigetreten.

      Du bist keinem Raum beigetreten.

      Anzeige (2)

      Oben