Hallo!
Ich programmiere aktuell einen "Vokabelabfrager". Dazu hätte ich eine Frage. Und zwar arbeite ich grafisch mit Tkinter. Doch ich bin gerade in einer While Schleife, in der alles funktioniert, aber dann will die While Schleife sich nicht mehr neustarten, denn sie hat schon erledigt was sie machen sollte, und will nicht weiter abfragen, weil sie dies schon gemacht hat.
Das ist ein Ausschit meines Codes:
weiter = False
def Prüfungs_Start():
global weiter
weiter = True
while weiter == True:
weiter = False
Prüfungs_Start_Fenster = Tk()
Prüfungs_Start_Fenster.title("Prüfung")
Prüfungs_Start_Fenster.geometry("400x500")
#Random Zeile finden
Datei = open("Vokabeln.txt", "a")
Datei = open("Vokabeln.txt", "r")
Datei_Anzahl_Zeilen = 0
for Zeile in Datei:
Datei_Anzahl_Zeilen += 1
Datei.seek(0)
Randomzeile = randint(1, Datei_Anzahl_Zeilen)
Zähler = 1
for Zeilen_Inhalt in Datei:
if Zähler == Randomzeile:
Random_Zeilen_Inhalt = Zeilen_Inhalt
Zähler += 1
#2 Vokabeln, die in der ausgewählten Zeile stehen, in 2 Variablen speichern
Ort = Random_Zeilen_Inhalt.find("'")
TestVokabel1 = Random_Zeilen_Inhalt[0:Ort]
TestVokabel2 = Random_Zeilen_Inhalt[Ort+1:-1]
Label(Prüfungs_Start_Fenster, text = f"Ausgangs-Vokabel: {TestVokabel1}", font = "Arial_Black 20").place(x = 10, y = 10)
Eingegebenes_Ergebnis = Entry(Prüfungs_Start_Fenster)
Eingegebenes_Ergebnis.place(x = 10, y = 50)
def Prüfung():
if Eingegebenes_Ergebnis.get() == TestVokabel2:
Label(Prüfungs_Start_Fenster, text = "Richtig! ", font = "Arial 21", fg = "green").place(x = 10, y = 180)
else:
Label(Prüfungs_Start_Fenster, text = "Leider falsch", font = "Arial 21", fg = "red").place(x = 10, y = 180)
Button(Prüfungs_Start_Fenster, text = "Fertig", command = Prüfung).place(x = 10, y = 100)
def Weiter():
global weiter
weiter = True
Prüfungs_Start_Fenster.destroy()
Button(Prüfungs_Start_Fenster, text = "Weiter", command = Weiter).place(x = 10, y = 130)
Nun habe ich hinten diesen "Weiter" Button, der die Variable "weiter" wieder auf einen anderen Wert weisen soll, um die While Schleife wieder laufen zu lassen. Das möchte sie aber wohl nicht, denn sie hat ja schon abgefragt und da hat es nicht gestimmt.
Wenn ihr wisst, wie ich es schaffen kann, dass die While Schleife neu abfragt, bitte hilft mir,
euer Alex