wort1 = gut
wort1a = nice
Und jetzt würde ich nach wort1 fragen und die antwort darauf soll wort1a sein. Wenn die antwort falsch ist, sollen aber wort1 und wort1a nicht verändert werden.
Das Programm soll mir beim Vokabeln lernen helfen
Ich bin ehrlich gesagt noch Anfänger (hätte bestimmt keiner gedacht) und kenne mich dementsprechend nicht gut aus. Ich möchte ein Programm schreiben mit dem Ich vokabeln lernen kann, nach folgendem muster: Ich definiere erst einmal wort1 als die Erste Sprache (Beispiel wort :,,gut") und mit wort1a dann die andere Sprache (Beispiel wort: ,,nice''), diese werden einer liste hinzugefügt. Dann möchte ich sobald ich alle vokabeln in der Liste habe diese abfragen. Also wenn ich dann z.B nach wort1a (nice) frage, soll die antwort wort1 (gut) sein. Wenn die antwort richtig ist sollen beide Vokabeln in eine andere Liste gesteckt werden und das solange bis die Finale liste erreicht ist in denen die Vokabeln sind die ich dann (wahrscheinlich) kann. Bei falschen antworten genau anders rum.BlackJack hat geschrieben:@erik32547: Die Frage ist mir ehrlich gesagt nicht ganz klar. Wenn Du die Namen nicht neu definieren willst, dann tu das doch einfach nicht.
Was soll die 1 in dem Namen? Gibt es auch einen mit einer 2? Am Ende sogar noch welche mit 3 und anderen Ziffern? Dann machst Du ziemlich sicher etwas falsch.
Code: Alles auswählen
nice; gutCode: Alles auswählen
wort1 = "gut"
wort1a = "nice"
falsch = True
while falsch:
if input(wort1+"? ") == wort1a:
print("richtig")
falsch=False
else:
print("falsch")Code: Alles auswählen
def check(wort1,wort1a):
falsch = True
while falsch:
if input(wort1+"? ") == wort1a:
print("richtig")
falsch=False
else:
print("falsch")
check("gut","nice")Code: Alles auswählen
if input(wort1+"? ") == wort1a:
print("richtig")Code: Alles auswählen
def ask_and_check(wort1,wort1a):
while input(wort1+"? ") != wort1a: print("falsch")
print("richtig")
ask_and_check("gut","nice")Code: Alles auswählen
def eingabe(a): return input(a)
def ausgabe(a): print(a)
def stimmt(a,b): return a == b
def ask_and_check(wort1,wort1a):
while not stimmt(eingabe(wort1+"? "),wort1a): ausgabe("falsch")
ausgabe("richtig")
ask_and_check("gut","nice")Code: Alles auswählen
def eingabe(a): return input(a)
def ausgabe(a): print(a)Code: Alles auswählen
eingabe = input
ausgabe = printIch will ja auch kein Vokabelprogramm schreiben. Wichtig ist doch nur dabei, dass die Wörter nicht verändert werden. Stell Dir nur vor, der User erik32547 würde sich für eine Datenbank entscheiden. Und wenn jemand dann falsche Eingaben macht, würden plötzliche falsche Wörter in der Datenbank stehen. Das wäre doch schlimm oder? Wenn man die Wörter als Parameter einzeln übergibt, passiert normalerweise nichts dabei. Sehr sicher wäre auch ein Tupel, aber vor einer Liste oder gar einem Dictionary muss man sich hüten.MagBen hat geschrieben:Schon mal Vokabeln abgefragt? Da gibt es keine Endlosschleifen, man hat einen Versuch, höchstens zwei und danach wird die gesuchte Vokabel genannt und später in einer zweiten Runde erneut abgefragt.
Code: Alles auswählen
Dictionary[wort1] = input(wort1+"? ")Code: Alles auswählen
import json
with open('english_dictionary') as data_file:
myDictionary = json.load(data_file)
ask_english(wort1,dictionary):
while True:
wort1a = dictionary[wort1]
dictionary[wort1] = input(wort1+"? ")
if dictionary[wort1] == wort1a:
print("richtig")
break
print("falsch")
ask_english('gut',myDictionary)
ask_english('schön',myDictionary)
with open('english_dictionary','w') as data_file:
json.dump(myDictionary,data_file)Was Du willst, ist doch völlig egal. Der OP will ein Vokabelprogramm schreiben, also hör auf, seine Thread hier mit Quark zuzumüllen. Keiner Deiner Beiträge in diesem Thread enthält etwas, das den OP weiterbringt.Alfons Mittelmeyer hat geschrieben:Ich will ja auch kein Vokabelprogramm schreiben.
Willst Du in diesem Thread nur stänkern? Oder was soll das sein:Sirius3 hat geschrieben:Was Du willst, ist doch völlig egal. Der OP will ein Vokabelprogramm schreiben, also hör auf, seine Thread hier mit Quark zuzumüllen. Keiner Deiner Beiträge in diesem Thread enthält etwas, das den OP weiterbringt.Alfons Mittelmeyer hat geschrieben:Ich will ja auch kein Vokabelprogramm schreiben.
Code: Alles auswählen
import json
#with open('english_dictionary') as data_file:
# EnglishDictionary = json.load(data_file)
EnglishDictionary = {}
newDictionary = {
'gut' : 'nice',
'Haus' : 'house',
'Käse' : 'cheese'
}
for german,english in newDictionary.items():
EnglishDictionary[german] = english
with open('english_dictionary','w') as data_file:
json.dump(EnglishDictionary,data_file)Was soll da das Gemosere: Was soll jetzt dieses sinnfreie Beispiel?BlackJack hat geschrieben:@Alfons Mittelmeyer: Was soll jetzt dieses sinnfreie Beispiel? Man könnte `newDictionary` gleich `english_dictionary` nennen statt das ohne Grund elementweise zu kopieren. Und eigentlich könnte man auch gleich die JSON-Datei im Editor schreiben, statt den Umweg über das Python-Programm zu gehen.