Passwortchecker in Python

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
blobbiq

Hallo,

soll für die Schule einen Passwortchecker erstellen und das habe ich auch gemacht, bloss läuft der jetzt irgendwie nicht.
also es soll nach einem user und passwort fragen und wenn beides richtig ist erstmal print "Welcome" stehen. es soll dabei auf mehrere benutzer aus der "Passwortliste zugreifen sollen"

da kommt folgender fehler:

Code: Alles auswählen

 File "**:\passwort.py", line 9
    if user==LPliste[0],[1]):
                       ^
SyntaxError: invalid syntax
und hier ist der quelltext dazu:

Code: Alles auswählen

def eingabe1():
	eingabe1=''
	login=raw_input ("Login: ")
	password=raw_input ("Passwort: ")
	user=["login","password"]
	return user

def verarbeitung(user):
	if user==LPliste[0],[1]):
	check=0
	return check

def ausgabe(check):
	if check==1:
		print "You are welcome!"
	else:
		print " bad login / password "

###########################
#Passwortliste:
LPliste=[["user1","pw1"],["user2","pw2"],["user3","pw3"]]

DerUser=[]
DerCheck=0

###########################

DerUser=eingabe1
DerCheck=verarbeitung(DerUser)
ausgabe(DerCheck)
das war jetzt nicht mein eigentliches problem, aber erstmal muss ich das problem lösen ;)
blobbiq

problem gelöst..
nach langer suche "klammer" vergessen vor user :oops:
Glamdring
User
Beiträge: 104
Registriert: Sonntag 25. Mai 2003, 20:22
Wohnort: Freiburg i.B.
Kontaktdaten:

Tja zu spät
Dies ist ein Platzhalter, er steht am Ende jeder meiner Beiträge! Erst wenn ich einen vernünftigen Text gefunden habe wird sich das ändern!
Gast

naja.. nach dem kleinen fix 8wegen der klammer)

funktioniert dsa passwortabfrageskript immernoch nicht richtig, da es bei mir gleich von anfang an ohne abfrage sagt 'falsches passwort'


hier npochmal der korrekte quelltext:
def eingabe1():
eingabe1=''
login=raw_input ("Login: ")
password=raw_input ("Passwort: ")
user=["login","password"]
return user

def verarbeitung(user):
if (user==LPliste[0],[1]):
check=1
return check

def ausgabe(check):
if check==1:
print "You are welcome!"
else:
print " bad login / password "

###########################
#Passwortliste:
LPliste=[["user1","pw1"],["user2","pw2"],["user3","pw3"]]

DerUser=[]
DerCheck=0

###########################

DerUser=eingabe1
DerCheck=verarbeitung(DerUser)
ausgabe(DerCheck)
blobbiq

Code: Alles auswählen

def eingabe1():
	eingabe1=''
	login=raw_input ("Login: ")
	password=raw_input ("Passwort: ")
	user=["login","password"]
	return user

def verarbeitung(user):
	if (user==LPliste[0],[1]):
		check=0	
		return check

def ausgabe(check):
	if check==1:
		print "You are welcome!"
	else:
		print " bad login / password "

###########################
#Passwortliste:
LPliste=[["user1","pw1"],["user2","pw2"],["user3","pw3"]]

DerUser=[]
DerCheck=0

###########################

DerUser=eingabe1
DerCheck=verarbeitung(DerUser)
ausgabe(DerCheck)

so hier als Code und nicht als Zitat (scheint heut ned mein tag zu sein)
rAiNm4n
User
Beiträge: 19
Registriert: Mittwoch 4. Juni 2003, 11:30
Wohnort: Berlin

Hi,
der Code, den du gepostet hast, steckt voller Fehler, daher wundert es mich nicht, dass er nicht funktioniert. :? Ich hab ihn halbwegs korrigiert:

Code: Alles auswählen

def eingabe1():
   eingabe1=''
   login=raw_input ("Login: ")
   password=raw_input ("Passwort: ")
   user=[login, password]
   return user

def verarbeitung(user):
   check = 0
   if user in LPliste:
       check=1
   return check

def ausgabe(check):
   if check==1:
      print "You are welcome!"
   else:
      print " bad login / password "

###########################
#Passwortliste:
LPliste=[["user1","pw1"], ["user2","pw2"], ["user3","pw3"]]

DerUser=[]
DerCheck=0

###########################

DerUser=eingabe1()
DerCheck=verarbeitung(DerUser)
ausgabe(DerCheck)
Konkret:
1. Z.5: Die Anführungszeichen haben da nichts zu suchen. Du willst ja den Inhalt der Variablen login und password in der Liste speichern, nicht zwei Strings "login" und "password".
2. Z.9: Dein Vergleich macht keinen Sinn, zumal er syntaktisch falsch ist (was meinst du mit LPliste[0],[1] ?).
3. Z.10: Nach einem if-Block muss eingerückt werden!
4. Z.11: Du musst die Variable vorher (außerhalb des if-Blocks) schon definieren, sonst ist sie nur definiert, wenn die Bedingung des if-Blocks wahr ist, andernfalls erhältst du einen UnboundLocalError. Außerdem macht es natürlich keinen Sinn, check 0 zuzuweisen, wenn der login richtig war.
5. Z.28: So, wie es dasteht, wird der Variablen DerUser eine Referenz auf die Funktion eingabe1 zugewiesen. Tatsächlich willst du aber, dass der Rückgabewert von eingabe1 in DerUser gespeichert wird. Also: Klammern nicht vergessen!
6. Der Code ist für ein so kleines Programm viel zu lang und unsauber... (Einfach mal googlen für bessere Beispiele)

Chris
blobbiq

hallo Chris und Jan,

Viel Dank für eure Hilfe.

Chris du hast mir sehr geholfen. Hab es mir aus der Schule nicht zusenden können (routerproblem) sondern nur ausrdrucken, somit habe ich bei m Abtippen paar Einrückunsfehler bzw. Klammerfehler gemacht.

Es ist deshalb so lang,w eil es nach dem Eva-Prinzip sein sollte. eine OOP-version habe ich auch, und die ist deutlich kürzer.

Nochmals Vielen Dank.

cu
Antworten