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 ;)