Seite 1 von 1

Hilfe ! Pararmeter ?

Verfasst: Montag 15. November 2010, 17:05
von Blue Flare
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

Re: Hilfe ! Pararmeter ?

Verfasst: Montag 15. November 2010, 17:10
von cofi
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)

Re: Hilfe ! Pararmeter ?

Verfasst: Montag 15. November 2010, 17:15
von /me
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.

Re: Hilfe ! Pararmeter ?

Verfasst: Montag 15. November 2010, 17:16
von Blue Flare

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

Re: Hilfe ! Pararmeter ?

Verfasst: Montag 15. November 2010, 17:22
von /me
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.

Re: Hilfe ! Pararmeter ?

Verfasst: Montag 15. November 2010, 17:26
von Blue Flare
: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)

Re: Hilfe ! Pararmeter ?

Verfasst: Montag 15. November 2010, 18:10
von Hyperion
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.