bin neu hier und auch noch relativ neu in Python.
Folgendes:
Ich möchte eine kleine Authentifizierungsmethode schreiben, welche nachher eine Tür öffnen soll.
Nichts großes, nur etwas einfaches. Folgenden Code habe ich mir zurechtgebastelt:
Code: Alles auswählen
#!usr/bin/python3
#Bibliotheken importieren
from tkinter import *
#Definitionen
def door(event):
if id.get() == "123456":
if check == "closed":
#id.delete(first=0,last=1000)
print("Authentifizierung erfolreich")
print("Tür geschlossen")
elif check == "open":
#id.delete(first=0,last=1000)
print("Authentifizierung erfolreich")
print("Tür offen")
else:
id.delete(first=0,last=1000)
print("Authentifizierung nicht erfolreich")
#Fenster, welches immer im Vordergrund gehalten wird
window = Tk()
window.title("GWS")
window.geometry("190x60")
#Layout des Fensters
Label(window, text="ID").grid(row=0)
id = Entry(window)
id.grid(row=0, column=1)
id.focus_set() # Fokus auf das Entry-Feld setzen
id.bind("<Return>",door)
check = open("doorstatus.txt").read()
mainloop()
Es wird eine Eingabemaske erstellt, in der ich eine IDeingeben kann.
Dann wird mittels der Variable "check" in der "doorstatus.txt" geprüft, in welchem Zustand die Tür ist (open oder closed).
Mittels Eingabe-Taste springt er dann zur Funktion.
Ist die ID richtig, sollte nun "check" verglichen werden und entsprechend des Wertes dann entweder das eine
oder das andere If ausgeführt werden. Hier scheitert es aber. Der Code verhält sich so, als wenn er auf die check Variable nicht zugreifen kann (Sprich, es passiert nichts,
keine Fehlermeldung, kein nichts).
Ist die Funktion so geschrieben:
Code: Alles auswählen
def door(event):
if id.get() == "123456":
print(check)
else:
id.delete(first=0,last=1000)
print("Authentifizierung nicht erfolreich")
Und nun seid ihr dran.
Warum wird der If-Block nicht ausgeführt?
Edit: Plattform ist ein Raspberry Pi2 mit Raspbian Stretch