Seite 1 von 1
Fehlermeldung - Ubuntu
Verfasst: Mittwoch 20. März 2013, 15:06
von Gary123456
Hallo,
Frage 1: Macht es Unterschiede, wenn man auf Ubuntu programmiert? Ich meine vom Syntax her?
Frage2:
Code: Alles auswählen
password = 098765
versuche = 3
password_query = int(input("Geben Sie nun ihr Passwort ein! (Nur Zahlen erlaubt!"))
while True:
if password_query == password:
print("Berechtigt!")
elif password_query != password:
print("Nicht berechtigt! Veruchen sie es noch einmal!")
password_query
versuche -= 1
if versuche == 0:
print("Konto gesperrt!")
Fehlermeldung: Invalid token. Was bedeutet dieser Fehler?
Die Lösung hätte ich schon zu diesem Problem. Würde mich aber interessieren, was die Fehlermeldung bedeutet.
Re: Fehlermeldung - Ubuntu
Verfasst: Mittwoch 20. März 2013, 15:10
von anogayales
Bitte gebe immer den kompletten Traceback an:
Code: Alles auswählen
File "test.py", line 1
password = 098765
^
SyntaxError: invalid token
Das Problem ist die null vor der Zahl. Damit sagst du python das er die Zahl zur Basis 8 (Oktett) behandeln soll und eine 9 ergibt da keinen Sinn, deswegen die Fehlermeldung "invalid token". Sprich, mach die 0 weg und es sollte funktionieren.
Sowas kann man übrigens wunderbar in ipython oder dem interaktiven Interpreter überprüfen:
Code: Alles auswählen
In [1]: 015155
Out[1]: 6765
In [2]: 0915155
File "<ipython-input-2-f09f7b5c8786>", line 1
0915155
^
SyntaxError: invalid token
Bei der ersten Zeile sollte es dich doch schon wundern, dass 015155 = 6765 ein bisschen komisch aussieht
Edit: Willst du Passwörter vergleichen, die eine Null beinhalten, dann benutze einfach Strings und keine Integer.
Grüße,
anogayales
Re: Fehlermeldung - Ubuntu
Verfasst: Mittwoch 20. März 2013, 15:11
von webspider
1.: Den entscheidenden Unterschied macht aus was für ein Python du verwendest. Davon abgesehen gibt es einige systemspezifische Sachen, die du anscheinend nie angerührt hast.
2.: Siehe vorige Antwort.
Re: Fehlermeldung - Ubuntu
Verfasst: Mittwoch 20. März 2013, 15:25
von Gary123456
Hauptsystem bleibt Windows.
OK habe verstanden.
===Thema gelöst===
Re: Fehlermeldung - Ubuntu
Verfasst: Mittwoch 20. März 2013, 15:37
von Gary123456
Ach Lösung vergessen:
Code: Alles auswählen
password = "098765"
versuche = 3
while versuche >= 0:
password_query=input("Geben Sie Ihr Passwort ein!")
if password_query == password:
print("Richtig")
break
else:
print("Nicht berechtigt!",versuche,"Versuche")
versuche -= 1
Re: Fehlermeldung - Ubuntu
Verfasst: Mittwoch 20. März 2013, 22:16
von darktrym
Warum verwendest nicht gleich eine For-Schleife?
Re: Fehlermeldung - Ubuntu
Verfasst: Mittwoch 20. März 2013, 22:33
von BlackJack
In dem Zusammenhang vielleicht mal die `reversed()`-Funktion anschauen. Das find ich einfacher als über die passenden Argumente bei `range()` nachdenken zu müssen.

Re: Fehlermeldung - Ubuntu
Verfasst: Donnerstag 21. März 2013, 08:42
von mutetella
Ich hätte das so gemacht:
Code: Alles auswählen
def password(phrase, attempts):
for attempt in range(1, attempts+1):
query = input('Passwort (Eingabe {0}/{1}): '.format(attempt, attempts))
if query == phrase:
return True
Code: Alles auswählen
>>> print('Richtig!' if password('098765', 3) else 'Falsch!')
Passwort (Eingabe 1/3): 1234
Passwort (Eingabe 2/3): 4321
Passwort (Eingabe 3/3): 2143
Falsch!
>>> print('Richtig!' if password('098765', 3) else 'Falsch!')
Passwort (Eingabe 1/3): 98765
Passwort (Eingabe 2/3): 098765
Richtig!
>>>
mutetella
Re: Fehlermeldung - Ubuntu
Verfasst: Donnerstag 21. März 2013, 09:18
von BlackJack
@mutetella: Ich würde da am Ende explizit `False` zurückgeben statt mich auf das implizite `None` zu verlassen.
Re: Fehlermeldung - Ubuntu
Verfasst: Donnerstag 21. März 2013, 16:24
von Gary123456
So hätte man es natürlich auch lösen können
