Hilfe ! Pararmeter ?

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.
Antworten
Blue Flare
User
Beiträge: 21
Registriert: Dienstag 7. September 2010, 18:34

Hallo Leute könnt ihr mir helfen, was ist da falsch ?
er führt nur menueauswahl 1 aus....
hab ich iwo was vergessen ?
bitte um hilfe !

Code: Alles auswählen

print("Wenn sie ein Quadrat zeichnen möchten drücken sie bitte die 1")
print("Wenn sie ein gleichseitiges Dreieck zeichnen möchten drücken sie bitte die 2")
print("Wenn sie einen Kreis zeichnen möchten drücken sie bitte die 3")
menueauswahl = int(input())

if menueauswahl == 0:
    print("Bitte wählen sie einen korrekten Menuepunkt")

if menueauswahl >=4:
    print("Bitte wählen sie einen korrekten Menuepunkt")


def zeichne_figur(p_laenge):
    if menueauswahl == 1:
        quadrat(p_laenge)
        if menueauswahl == 2:
            dreieck(p_laenge)
            if menueauswahl == 3:
                kreis(p_laenge)

def quadrat(p_laenge):
    penup()
    forward(p_laenge/2)
    pendown()
    right(90)
    forward(p_laenge/2)
    right(90)
    forward(p_laenge)
    right(90)
    forward(p_laenge)
    right(90)
    forward(p_laenge)
    right(90)
    forward(p_laenge/2)
    hideturtle()

def dreieck(p_laenge):
    right(90)
    forward(p_laenge/2)
    left(120)
    forward(p_laenge)
    left(120)
    forward(p_laenge)
    left(120)
    forward(p_laenge/2)

def kreis(p_laenge):
    left(90)
    penup()
    forward(p_laenge/2)
    right(90)
    circle(p_laenge)
    
    

    


#*******************************************************

from turtle import *    

print("Bitte geben Sie eine Laenge für die zeichnung ein")
laenge = int(input())

        
zeichne_figur(laenge)

    

lg kevin
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Schau dir den Abschnitt noch mal an:

Code: Alles auswählen

def zeichne_figur(p_laenge):
    if menueauswahl == 1:
        quadrat(p_laenge)
        if menueauswahl == 2:
            dreieck(p_laenge)
            if menueauswahl == 3:
                kreis(p_laenge)
Benutzeravatar
/me
User
Beiträge: 3561
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

Blue Flare hat geschrieben:Hallo Leute könnt ihr mir helfen, was ist da falsch ?
er führt nur menueauswahl 1 aus....

Code: Alles auswählen

def zeichne_figur(p_laenge):
    if menueauswahl == 1:
        quadrat(p_laenge)
        if menueauswahl == 2:
            dreieck(p_laenge)
            if menueauswahl == 3:
                kreis(p_laenge)
Was passiert denn hier wohl, wenn menueauswahl den Wert 2 hat? Das Programm läuft auf das erste if-Statement und stellt fest, dass keine Übereinstimmung zwischen den Werten besteht. Der zugehörige Code wird folglich nicht ausgeführt.

Du solltest erstens deine Einrückungen passend setzen und zweitens über den Einsatz von elif nachdenken.
Blue Flare
User
Beiträge: 21
Registriert: Dienstag 7. September 2010, 18:34

Code: Alles auswählen

def zeichne_figur(p_laenge):
    if menueauswahl == 1:
        quadrat(p_laenge)
        elif menueauswahl == 2:
            dreieck(p_laenge)
            else:
                 kreis(p_laenge)
ich weiß normalerweiße gehört das so aber da streicht er immer das elif an, auch wenn die einrückung zu 100% richtig ist...
:K
Benutzeravatar
/me
User
Beiträge: 3561
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

Blue Flare hat geschrieben:

Code: Alles auswählen

def zeichne_figur(p_laenge):
    if menueauswahl == 1:
        quadrat(p_laenge)
        elif menueauswahl == 2:
            dreieck(p_laenge)
            else:
                 kreis(p_laenge)
ich weiß normalerweiße gehört das so aber da streicht er immer das elif an, auch wenn die einrückung zu 100% richtig ist...
Ich hätte ja doch erwartet, dass du dir den korrekten Aufbau des if-Statements in der Dokumentation angesehen hättest nachdem es nicht funktionierte. Ich habe doch extra den Link dahin angegeben. Hol das einfach nach und dann kannst du gegebenenfalls noch erklären, was du unter 100% verstehst. :mrgreen:

Ach so, bitte benutze im Forum Python-Code-Tags, das liest sich schöner.
Blue Flare
User
Beiträge: 21
Registriert: Dienstag 7. September 2010, 18:34

:mrgreen: :mrgreen: :mrgreen: :mrgreen:

bin ich blöd danke :D

Code: Alles auswählen

def zeichne_figur(p_laenge):
    if menueauswahl == 1:
        quadrat(p_laenge)
    elif menueauswahl == 2:
        dreieck(p_laenge)
    else:
        kreis(p_laenge)
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Blue Flare hat geschrieben:

Code: Alles auswählen

def zeichne_figur(p_laenge):
    if menueauswahl == 1:
        quadrat(p_laenge)
    elif menueauswahl == 2:
        dreieck(p_laenge)
    else:
        kreis(p_laenge)
Kann man übrigens auch eleganter lösen (auch wenn das am Anfang eher magisch aussehen dürfte :-D ):

Code: Alles auswählen

def zeichne_figur(p_laenge):
    dispatcher = [quadrat, dreieck, kreis]
    dispatcher[menuauswahl+1](p_laenge)
Wobei menueauswahl hier dann wohl global wäre, was unschön ist ;-) Ich würde den Parameter also übergeben bzw. den Dispatcher direkt nach der Auswahl platzieren.
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
Antworten