2016-04-13 7 views
0

Ich lerne gerade erst Python, und als eine lustige Übung bat mich ein Freund, ein Programm zu schreiben, das: ein zufälliges Schlüsselwort aus einer separaten Datei, vergleicht das ausgewählte Wort mit Schlüsselwörter in einem Wörterbuch und gibt eine Zeichenfolge aus, die das Schlüsselwort und die damit verknüpften Informationen enthält (wir nennen es "Definition"). Es soll ein Wort nehmen, es zu einem Euphemismus machen, indem man das Wort Cincinnati davor gibt und dann die Definition gibt. Der Code, den ich schrieb, ist wie folgt.das korrekte Element aus einem Wörterbuch in Python 2.7

Der Teil, der mir Probleme macht ist, dass dieser Code funktioniert ... fast. Es ruft erfolgreich ein Schlüsselwort aus der Textdatei ab. Es vergleicht es erfolgreich mit der Liste der Schlüssel im Wörterbuch. Es gibt auch eine Definition aus dem Wörterbuch erfolgreich zurück. Das Problem ist, dass die zurückgegebene Definition immer dieselbe ist, unabhängig davon, welches Schlüsselwort verwendet wird. In jedem Test, den ich bisher gemacht habe, gibt es immer die Definition für ein Cincinnati-Grammophon zurück.

Ich bin sicher, die Antwort ist etwas dummes offensichtlich, aber ich habe seit ein paar Tagen starrte darauf, und ich kann nicht sehen, was würde dies verursachen. Kann jemand Rat geben? Ich bedanke mich im Voraus.

Antwort

0

Sie verwenden eine Schleife (for word, meaning in cincinnati_dict:), wenn Sie nicht benötigen. Die bedingungslose break ist ein Hinweis, dass Sie überhaupt keine Schleife wollen.

Verwenden Sie stattdessen nur meaning statt new_word im get Anruf und der if Zustand:

word = cincinnati_word() 
meaning = cincinnati_dict.get(word) 
if meaning: 
    print "The Cincinnati Kid: \"The old Cincinnati %s, yeah, that's where %s.\"" % (word, meaning) 
else: 
    print "The Cincinnati Kid: \"The Cincinnati %s? That ain't no thing I ever hoid of." %(word) 
+0

Wow, das es bis fixiert. Vielen Dank. Ich bin immer noch neugierig darauf, warum der Loop immer eine Bedeutung hat. – MacHaggoose

+0

Sie würden nur einmal iterieren (da Sie immer eine "Pause" treffen würden), also war die eine Bedeutung was auch immer zuerst von 'Elementen' kam. – Blckknght

Verwandte Themen