Hi Leute,
ich sollte für die Schule ein kleines Programm schreiben.
Dabei ging es um einen kleinen "Login" zweier ausgewählter Benutzer.
Name = raw_input("Bitte Namen eingeben.")
Passwort = raw_input("Bitte Passwort eingeben.")
repeat = True
while true:
if Name == 'Klaus':
[] if Passwort == 'blabla':
[][] print 'Willkommen Herr Klaus'
[][] repeat = False
elife Name == 'Iris':
[] if Passwort == 'bluemchen':
[][] print 'Willkommen Frau Iris'
[][] repeat = False
Die Benutzer heißen in diesem Fall "Klaus" und "Iris".
Meine Idee war es den Benutzer ersteinmal seine Daten eingeben zu lassen.
Um es möglichst kurz zu halten, da die beiden Zeilen sonst in jedem "Benutzer-Block" in der repeat-Schleife vorkommen müssten.
Um zu meinem Problem zu kommen: An der markierten Stelle sagt er mir "invalid syntax". Da der "Iris-Block" und der "Klaus-Block" eigentlich den gleichen Aufbau haben, bin ich vollkommen ratlos, wo das Problem liegt.
Wir haben bisher nur eine Stunde mit Python gehabt, also bitte ich darum, eure Antworten nicht zu kompliziert zu machen.
Alternative Wege wären auch super, aber besonders wichtig ist es mir, zu wissen, warum in diesem Fall ein Fehler auftritt.
Danke schonmal im Vorraus
Problem mit kleinem Programm
- Defnull
- User
- Beiträge: 778
- Registriert: Donnerstag 18. Juni 2009, 22:09
- Wohnort: Göttingen
- Kontaktdaten:
Du hast da nen Tippfehler: elife --> elif
Ich würde das Programm aber so schreiben:
Ich würde das Programm aber so schreiben:
Code: Alles auswählen
user_db = dict() # Name -> Passwort
user_db['Klaus'] = 'blabla'
user_db['Iris'] = 'bluemchen'
while true:
login_name = raw_input("Bitte Namen eingeben: ").strip()
login_passwort = raw_input("Bitte Passwort eingeben: ").strip()
if login_name in user_db:
if user_db[login_name] == login_passwort:
print "Hallo %s" % login_name
break
else:
print "Login fehlgeschlagen."
Bottle: Micro Web Framework + Development Blog
- cofi
- Python-Forum Veteran
- Beiträge: 4432
- Registriert: Sonntag 30. März 2008, 04:16
- Wohnort: RGFybXN0YWR0
Oder alternativ eine ``for``-Schleife, wenn man die Anzahl beschraenken will:
Und fuer die Zukunft: bitte benutze Code-Tags
Code: Alles auswählen
for try_ in xrange(3):
...
else:
print "3 Versuche fehlgeschlagen. Sperre fuer 23 Minuten."
Michael Markert ❖ PEP 8 Übersetzung ❖ Tutorial Übersetzung (3.x) ⇒ Online-Version (Python 3.3) ❖ Deutscher Python-Insider ❖ Projekte
-
- User
- Beiträge: 2
- Registriert: Sonntag 6. September 2009, 14:22
Vielen Dank für die schnellen Antworten.
Bin erleichtert, dass es nur nen Schreibfehler war.
Werd mir das mit Code-Tags fürs nächste Mal zu Herzen nehmen und die alternativ Lösungen ausgiebig studieren.
cYa
Bin erleichtert, dass es nur nen Schreibfehler war.
Werd mir das mit Code-Tags fürs nächste Mal zu Herzen nehmen und die alternativ Lösungen ausgiebig studieren.
cYa