Ich habe Python 2.5.

Code: Alles auswählen
import turtle
import Quadrat
class Quadrat:
def __init__(self,seitenlaenge,zentrum):
self.seitenlaenge = seitenlaenge
self.zentrum = zentrum
#return
def anzeigen(self):
angle = 90
turtle.color("white")
turtle.setx(self.zentrum[0]-0.5*self.seitenlaenge)
turtle.sety(self.zentrum[1]-0.5*self.seitenlaenge)
turtle.color("black")
for i in range(4):
turtle.forward(self.seitenlaenge)
turtle.left(angle)
#return
def loeschen(self):
turtle.color("white")
angle = 90
for i in range(4):
turtle.forward(self.seitenlaenge)
turtle.left(angle)
#return
def verschieben(self,neues_zentrum):
self.loeschen()
turtle.color("white")
self.zentrum = neues_zentrum
self.anzeigen()
#return
def skalieren(self,faktor):
self.loeschen()
self.seitenlaenge *= faktor
self.anzeigen()
#return
def berechne_umfang(self,seitenlaenge):
#U = 4*self.seitenlaenge
#print U
return 4 * self.seitenlänge
print mein_Quadrat.berechne_umfang()
def berechne_inhalt(self,seitenlaenge):
#A = self.seitenlaenge**2
#print A
#return
return self.seitenlänge**2
print mein_Quadrat_.berechne_inhalt()
if __name__=="__main__":
square = Quadrat(50,(0,0))
square.anzeigen()
Umfang = square.umfang(50)
Inhalt = square.inhalt(50)
square.verschieben((100,100))
square.skalieren(4)
Code: Alles auswählen
Traceback (most recent call last):
File "C:/Python25/Eigene/Quadrat.py", line 3, in <module>
import Quadrat
File "C:/Python25/Eigene\Quadrat.py", line 46
SyntaxError: Non-ASCII character '\xe4' in file C:/Python25/Eigene\Quadrat.py on line 46, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details (Quadrat.py, line 46)
du hast einen umlaut in "seitenlänge". im code solltest du nur ascii-zeichen verwenden, ändere das also in seitenlaenge. in kommentaren sind umlaute natürlich in ordnung, werden aber auch angemeckert. daher musst du an den anfang des codes folgendes schreiben:Sconine hat geschrieben:Code: Alles auswählen
Traceback (most recent call last): File "C:/Python25/Eigene/Quadrat.py", line 3, in <module> import Quadrat File "C:/Python25/Eigene\Quadrat.py", line 46 SyntaxError: Non-ASCII character '\xe4' in file C:/Python25/Eigene\Quadrat.py on line 46, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details (Quadrat.py, line 46)
Code: Alles auswählen
#-*- coding: iso-8859-1 -*-
Klassennamen schreibst du groß (In CamelCase), den rest klein (mit underscores). also auch eine instanz.Jetzt komme ich mit der Groß- und Kleinschreibung durcheinander.
In der Klasse wird der Name groß geschrieben.
class Quadrat:
In der Methode klein
def anzeigen()
skalieren()
usw
Code: Alles auswählen
class MeineKlasse:
pass
eine_klasse = MeineKlasse()
das mein_quadrat soll eine instanz von Quadrat sein. hab ich doch geschrieben. du hattest es square genannt, ws nicht schön ist, da du sonst alles in deutsch hast.Beim Umfang verstehe ich es mit dem return, aber woher kommt das mein_quadrat? Muss es jetzt auch groß geschrieben werden?
Code: Alles auswählen
mein_quadrat = Quadrat()
probier es doch einfach. schreib mal ein print __name__ an den anfang des skripts. und schau was passiert wenn du das skript direkt startest und was wenn du es importierst.Mit den Testläufen verstehe ich es nicht so ganz? Was bedeutet denn __main__? Ich weiss schonmal, dass es keine Funktion ist.![]()
das verstehst du dann wenn du obiges getestet hast.import Quadrat verstehe ich auch nicht. Wieso sollten da die testläufe nicht durchgehen??? Ich habe das Programm unter Quadrat.py abgespeichert.
Code: Alles auswählen
import turtle
import Quadrat
class Quadrat:
def __init__(self,seitenlaenge,zentrum):
self.seitenlaenge = seitenlaenge
self.zentrum = zentrum
def anzeigen(self):
angle = 90
turtle.color("white")
turtle.setx(self.zentrum[0]-0.5*self.seitenlaenge)
turtle.sety(self.zentrum[1]-0.5*self.seitenlaenge)
turtle.color("black")
for i in range(4):
turtle.forward(self.seitenlaenge)
turtle.left(angle)
def loeschen(self):
turtle.color("white")
angle = 90
for i in range(4):
turtle.forward(self.seitenlaenge)
turtle.left(angle)
def verschieben(self,neues_zentrum):
self.loeschen()
turtle.color("white")
self.zentrum = neues_zentrum
self.anzeigen()
def skalieren(self,faktor):
self.loeschen()
self.seitenlaenge *= faktor
self.anzeigen()
def berechne_umfang(self,seitenlaenge):
return 4 * self.seitenlänge
print mein_Quadrat.berechne_umfang()
def berechne_inhalt(self,seitenlaenge):
return self.seitenlänge**2
print mein_Quadrat_.berechne_inhalt()
if __name__=="__main__":
mein_quadrat = Quadrat(50,(0,0))
mein_quadrat.anzeigen()
umfang = mein_quadrat.umfang(50)
inhalt = mein_quadrat.inhalt(50)
mein_quadrat.verschieben((100,100))
mein_quadrat.skalieren(4)
Code: Alles auswählen
Traceback (most recent call last):
File "C:\Python25\Eigene\Quadrat.py", line 54, in <module>
umfang = mein_quadrat.umfang(50)
AttributeError: Quadrat instance has no attribute 'umfang'
Code: Alles auswählen
mein_quadrat.berechne_umfang()
Code: Alles auswählen
import turtle
import Quadrat
class Quadrat:
def __init__(self,seitenlaenge,zentrum):
self.seitenlaenge = seitenlaenge
self.zentrum = zentrum
def anzeigen(self):
angle = 90
turtle.color("white")
turtle.setx(self.zentrum[0]-0.5*self.seitenlaenge)
turtle.sety(self.zentrum[1]-0.5*self.seitenlaenge)
turtle.color("black")
for i in range(4):
turtle.forward(self.seitenlaenge)
turtle.left(angle)
def loeschen(self):
turtle.color("white")
angle = 90
for i in range(4):
turtle.forward(self.seitenlaenge)
turtle.left(angle)
def verschieben(self,neues_zentrum):
self.loeschen()
turtle.color("white")
self.zentrum = neues_zentrum
self.anzeigen()
def skalieren(self,faktor):
self.loeschen()
self.seitenlaenge *= faktor
self.anzeigen()
def berechne_umfang(self,seitenlaenge):
return 4 * self.seitenlaenge
print mein_quadrat.berechne_umfang()
def berechne_inhalt(self,seitenlaenge):
return self.seitenlaenge**2
print mein_quadrat_.berechne_inhalt()
if __name__=="__main__":
mein_quadrat = Quadrat(50,(0,0))
mein_quadrat.anzeigen()
berechne_umfang = mein_quadrat.berechne_umfang(50)
berechne_inhalt = mein_quadrat.berechne_inhalt(50)
mein_quadrat.verschieben((100,100))
mein_quadrat.skalieren(4)
Code: Alles auswählen
import Quadrat
Code: Alles auswählen
mein_quadrat = Quadrat(50,(0,0))
mein_quadrat.anzeigen()
#das ist kein schöner name für eine variabel, nenne sie "umfang" oder
#"berechneter_umfang" wegen mir
berechne_umfang = mein_quadrat.berechne_umfang(50)
#und hier ein print hin:
print umfang #dazu musst du erst die variable umbennen!! dann gehts!
#siehe oben
berechne_inhalt = mein_quadrat.berechne_inhalt(50)
mein_quadrat.verschieben((100,100))
mein_quadrat.skalieren(4)
Code: Alles auswählen
import turtle
class Quadrat:
def __init__(self,seitenlaenge,zentrum):
self.seitenlaenge = seitenlaenge
self.zentrum = zentrum
def anzeigen(self):
angle = 90
turtle.color("white")
turtle.setx(self.zentrum[0]-0.5*self.seitenlaenge)
turtle.sety(self.zentrum[1]-0.5*self.seitenlaenge)
turtle.color("black")
for i in range(4):
turtle.forward(self.seitenlaenge)
turtle.left(angle)
def loeschen(self):
turtle.color("white")
angle = 90
for i in range(4):
turtle.forward(self.seitenlaenge)
turtle.left(angle)
def verschieben(self,neues_zentrum):
self.loeschen()
turtle.color("white")
self.zentrum = neues_zentrum
self.anzeigen()
def skalieren(self,faktor):
self.loeschen()
self.seitenlaenge *= faktor
self.anzeigen()
def umfang(self,seitenlaenge):
return 4 * self.seitenlaenge
print mein_quadrat.umfang()
def inhalt(self,seitenlaenge):
return self.seitenlaenge**2
print mein_quadrat.inhalt()
if __name__=="__main__":
mein_quadrat = Quadrat(60,(0,0))
mein_quadrat.anzeigen()
umfang = mein_quadrat.umfang(60)
print umfang
inhalt = mein_quadrat.inhalt(60)
print inhalt
mein_quadrat.verschieben((100,100))
mein_quadrat.skalieren(4)
Code: Alles auswählen
Traceback (most recent call last):
File "C:\Python25\Eigene\Quadrat.py", line 52, in <module>
umfang = mein_quadrat.umfang(60)
TypeError: umfang() takes exactly 1 argument (2 given)