Seite 1 von 1

Problem mit W.spiegels einführung (anfänger)

Verfasst: Donnerstag 1. Januar 2009, 00:42
von robrobrob
Hallo,ich fange gerade an Python zu lernen und mach grad W.Spiegels "Einführung in Python" doch grad hat sich ein Problem aufgetan
Ich versuchte grad zu schreiben was er in seinem Text sagte:

Code: Alles auswählen

def passwort():
	print 'Passwortabfrage: '
	eingabe = raw_input()
	if (eingabe == ('GEHEIM'):
Ab da konnt ich nicht mehr weiterschreiben ich weiß auch nicht warum, er hats genau so beschrieben,
Könnt ihr mir vielleicht sagen was er oder ich anders schreiben sollte?
Wäre nett wenn ihr mir sagen könntet wo das Problem liegt.

Ich benutze die Python-Version 2.5.4 .
Unten drunter stand SyntaxError:invalid syntax und das ":" war rot markiert.
Entschuldigt,wenn ich euch mit meinen Anfänger-Problemen nerv, aber ich hab vorher noch nie programmiert und hab deswegen keine Erfahrungen.....

rob

Verfasst: Donnerstag 1. Januar 2009, 00:46
von INFACT
Vieleicht liegt das Daran, dass du danach nichts eingegeben hast. Probiers mal so:
def passwort():
print 'Passwortabfrage: '
eingabe = raw_input()
if (eingabe == ('GEHEIM'):
print "ERFOLGREICH EINGELOGGT"

Verfasst: Donnerstag 1. Januar 2009, 01:05
von Pekh
Mach mal noch ne schließende Klammer vor dem Doppelpunkt. Oder besser: Lass die öffnende hinter dem 'if' weg. Das ist in anderen Sprachen so üblich und notwendig, in Python nicht.

Stilistisch ist der Programmschnippsel ein bisschen fragwürdig: Das extra 'print' ist zum Beispiel unnötig, da du den Text auch 'raw_input' als Argument mitgeben kannst.

Ach ja: Fürs posten von Quellcode hier im Forum gibts das Code-Tag. Dann wird auch nicht die so wichtige Einrückung zerstört.

Verfasst: Donnerstag 1. Januar 2009, 01:11
von INFACT

Code: Alles auswählen

def passwort():
    print 'Passwortabfrage: '
    eingabe = raw_input()
    if eingabe == ('GEHEIM'):
        print "regestrierung erfolgreich"
    else:
        print "Falsches Passwort"
>>> passwort()
Passwortabfrage: GEHIM
regestrierung erfolgreich
>>> passwort()
Passwortabfrage: falsch
Falsches Passwort
>>>

Verfasst: Donnerstag 1. Januar 2009, 01:35
von robrobrob
Danke an Infact "Problem" gelöst
ich habe die Einrückungen nicht beachtet :roll:
Danke an die anderen für die schnelle Beantwortung meiner Frage ....
rob

Verfasst: Donnerstag 1. Januar 2009, 02:08
von DasIch
Klammern um Strings sind auch nicht notwendig.

Verfasst: Donnerstag 1. Januar 2009, 10:54
von roschi
INFACT hat geschrieben:

Code: Alles auswählen

def passwort():
    print 'Passwortabfrage: '
    eingabe = raw_input()
    if eingabe == ('GEHEIM'):
        print "regestrierung erfolgreich"
    else:
        print "Falsches Passwort"
>>> passwort()
Passwortabfrage: GEHIM
regestrierung erfolgreich
>>> passwort()
Passwortabfrage: falsch
Falsches Passwort
>>>
ich glaube, ich darf an der funktionalitaet dieses codes zweifeln...

Code: Alles auswählen

>>> "GEHIM" == ("GEHEIM")
False
>>> "GEHEIM" == ("GEHEIM")
True
:-)

lg
roschi

Verfasst: Donnerstag 1. Januar 2009, 18:49
von jonas
Hi,
wollt auch mal was dazu beitragen:

Code: Alles auswählen

def passwort (versuche, abfrage="Passwort:", pw="Geheim"):
    for i in range(versuche):
        eingabe = raw_input(abfrage)
        if eingabe == pw:
            print "Richtiges Passwort"
            break
        else:
            print "Falsches Passwort"

if __name__ == "__main__":
    passwort (3)

Code: Alles auswählen

>>> 
Passwort:Hans
Falsches Passwort
Passwort:Falsch
Falsches Passwort
Passwort:Geheim
Richtiges Passwort
>>> 
MfG Jonas

PS: Rechtschreibfehler ausgebügelt...
PS2: Schleifenabbruch eingebaut.

Verfasst: Donnerstag 1. Januar 2009, 18:56
von cofi
Naja ... auch wenn das Passwort richtig ist bekomme ich noch den Prompt ;) -> Brich die Schleife ab wenn das Passwort richtig ist.

Verfasst: Donnerstag 1. Januar 2009, 18:58
von Klip
ich glaube, ich darf an der funktionalitaet dieses codes zweifeln...

Code: Alles auswählen

>>> "GEHIM" == ("GEHEIM")
False
>>> "GEHEIM" == ("GEHEIM")
True
Tippfehler ;)

Code: Alles auswählen

>>> "geheim" == ("geheim")
True