Mein Beispiel ist ein Vokabeltrainer in den man seine Vokabeln einträgt und diese dann aus der Text Datei abgefragt werden(ich möchte keine Liste verwenden, da diese nicht gespeichert wird nachdem man das Script wieder schließ/abbricht). Doch die if abfrage funktioniert nicht. Ich würde mich sehr über Hilfe freuen, denn ich sitze schon sehr lang an diesem Problem.
Datei de.txt/de_voc:
Hallo
Apfel
Buch
(oder ['Hallo\n', 'Apfel\n', 'Buch\n'])
Datei en.txt/en_voc:
hello
apple
book
(oder ['hello\n', 'apple\n', 'book\n'])
Code: Alles auswählen
#python 3
import random
def eingabe():
while True:
voc_de = open("de.txt", "a")
de = input("Deutsch:")
if de == "stop":
return
voc_de.write(str(de))
voc_de.write("\n") # für eine neue Zeile
voc_de.close()
voc_en = open("en.txt", "a")
en = input("Englisch:")
if en == "stop":
return
voc_en.write(str(en))
voc_en.write("\n")
voc_en.close()
def abfrage():
while True:
de_voc = open("de.txt", "r").readlines() #evtl. read/readline
en_voc = open("en.txt", "r").readlines() #evtl. read/readline
z = random.randint(0, len(de_voc)-1)
ab = de_voc[z]
print("Übersetze:", ab) #die Abfrage von ab/de_voc[z]
ub = input("Übersetzung:") #der user Input
if str(ub) == en_voc[z]: # mein Problem,die if Bedingung funktioniert nicht (nur wenn die komplette Datei abgefragt wird(ohne z )und ich dann halt auch ['hello', .....]angebe)
print("Richtig")
else:
print("Falsch")
while True:
befehl = input("befehle(eingabe/abfrage):")
if befehl == "eingabe":
eingabe()
elif befehl == "abfrage":
abfrage()
else:
print("error")