Python-String oder if-Anweisung

Also, ich mache dieses Programm zu helfen, für meine japanische Klasse zu studieren. Wie Sie vielleicht sehen können, mischt es eine Liste von Wörtern und zeigt sie an. Dann fragt das Programm nach einer Übersetzung. Es soll prüfen, ob die Antwort korrekt ist oder nicht und die entsprechende Meldung anzeigen. Unabhängig davon, ob die Antwort korrekt ist oder nicht, werden alle "falschen" Meldungen angezeigt. Meine Frage ist, wie man dieses Problem beheben kann. Bitte, ich brauche Hilfe, und ich möchte das beenden, bevor ich die nächste Stufe der japanischen Klasse nehme. Vielen Dank an alle, die bereit sind, mir ein bisschen zu helfen.

import random words = ['ano', 'ima', 'eego', 'hai', 'gakusei', '...go', 'kookoo', 'gogo', 'gozen', '...sai', '...san', '...ji', '...jin', 'senkoo', 'sensei', 'soo desu', 'daigaku', 'denwa', 'tomodachi', 'namae', 'nan/nani', 'nihon', '...nensei', 'han', 'bangoo', 'ryuugakusei', 'watashi', 'amerika', 'igirisu', 'oosutoraria', 'kankoku', 'suweeden', 'chuugoku', 'kagaku', 'ajia kenkyuu', 'keizai', 'kokusaikankei', 'konpyuutaa', 'jinruigaku', 'seeji', 'bijinesu', 'bungaku', 'rekishi', 'shigoto', 'isha', 'kaishain', 'kookoosei', 'shufu', 'daigakuinsei', 'bengoshi', 'okaasan', 'otoosan', 'oneesan', 'oniisan', 'imooto', 'otooto'] random.shuffle(words) index = 0 while index < len(words): print() print(words[index]) translation = input('Enter the translation: ') index += 1 print() if words == 'ano' and translation == 'um': print('Correct!') else: print('Incorrect.') print('The correct answer is: um.') if words == 'ima' and translation == 'now': print('Correct!') else: print('Incorrect.') print('The correct answer is: now.') if words == 'eego' and translation == 'english': print('Correct!') else: print('Incorrect.') print('The correct answer is: english.') if words == 'hai' and translation == 'yes': print('Correct!') else: print('Incorrect.') print('The correct answer is: yes.') if words == 'gakusei' and translation == 'student': print('Correct!') else: print('Incorrect.') print('The correct answer is: student.') if words == '...go' and translation == 'language': print('Correct!') else: print('Incorrect.') print('The correct answer is: language.') if words == 'kookoo' and translation == 'high school': print('Correct!') else: print('Incorrect.') print('The correct answer is: high school.') if words == 'gogo' and translation == 'pm': print('Correct!') else: print('Incorrect.') print('The correct answer is: pm.') if words == 'gozen' and translation == 'am': print('Correct!') else: print('Incorrect.') print('The correct answer is: am.') if words == '...sai' and translation == 'years old': print('Correct!') else: print('Incorrect.') print('The correct answer is: years old.') if words == '...san' and translation == 'mr/ms': print('Correct!') else: print('Incorrect.') print('The correct answer is: mr/ms.') if words == 'ji' and translation == "o'clock": print('Correct!') else: print('Incorrect.') print("The correct answer is: o'clock.") if words == 'jin' and translation == 'people': print('Correct.!') else: print('Incorrect.') print('The correct answer is: people.') if words == 'senkoo' and translation == 'major': print('Correct!') else: print('Incorrect.') print('The correct answer is: major.') if words == 'sensei' and translation == 'teacher': print('Correct!') else: print('Incorrect.') print('The correct answer is: teacher.') if words == 'soo desu' and translation == "that's right": print('Correct!') else: print('Incorrect.') print("The correct answer is: that's right.") if words == 'daigaku' and translation == 'college/university': print('Correct!') else: print('Incorrect.') print('The correct answer is: college/university.') if words == 'denwa' and translation == 'telephone': print('Correct!') else: print('Incorrect.') print('The correct answer is: telephone.') if words == 'tomodachi' and translation == 'friend': print('Correct.!') else: print('Incorrect.') print('The correct answer is: friend.') if words == 'namae' and translation == 'name': print('Correct!') else: print('Incorrect.') print('The correct answer is: name.') if words == 'nan/nani' and translation == 'what': print('Correct!') else: print('Incorrect.') print('The correct answer is: what.') if words == 'nihon' and translation == 'japan': print('Correct!') else: print('Incorrect.') print('The correct answer is: japan.') if words == '...nensei' and translation == 'year student': print('Correct!') else: print('Incorrect.') print('The correct answer is: year student.') if words == 'han' and translation == 'half': print('Correct!') else: print('Incorrect.') print('The correct answer is: half.') if words == 'bangoo' and translation == 'number': print('Correct!') else: print('Incorrect.') print('The correct answer is: number.') if words == 'ryuugakusei' and translation == 'international student': print('Ccorect!') else: print('Incorrect.') print('The correct answer is: international student.') if words == 'watashi' and translation == 'I': print('Correct!') else: print('Incorrect.') print('The correct answer is: I.') if words == 'amerika' and translation == 'america': print('Correct!') else: print('Incorrect.') print('The correct answer is: america.') if words == 'igirisu' and translation == 'britain': print('Correct!') else: print('Incorrect.') print('The correct answer is: britain.') if words == 'oosutoraria' and translation == 'australia': print('Correct!') else: print('Incorrect.') print('The correct answer is: australia.') if words == 'kankoku' and translation == 'korea': print('Correct!') else: print('Incorrect.') print('The correct answer is: korea.') if words == 'suweeden' and translation == 'sweeden': print('Correct!') else: print('Incorrect.') print('The correct answer is: sweeden.') if words == 'chuugoku' and translation == 'china': print('Correct!') else: print('Incorrect.') print('The correct answer is: china.') if words == 'kagaku' and translation == 'science': print('Correct!') else: print('Incorrect.') print('The correct answer is: science.') if words == 'ajia kenkyuu' and translation == 'asian studies': print('Correct!') else: print('Incorrect.') print('The correct answer is: asian studies.') if words == 'keizai' and translation == 'economics': print('Correct!') else: print('Incorrect.') print('The correct answer is: economics.') if words == 'kokusaikankei' and translation == 'international relations': print('Correct!') else: print('Incorrect.') print('The correct answer is: international relations.') if words == 'konpyuutaa' and translation == 'computer': print('Correct!') else: print('Incorrect.') print('The correct answer is: computer.') if words == 'jinruigaku' and translation == 'anthropology': print('Correct!') else: print('Incorrect.') print('The correct answer is: anthropology.') if words == 'seeji' and translation == 'politics': print('Correct!') else: print('Incorrect.') print('The correct answer is: politics.') if words == 'bijinesu' and translation == 'business': print('Correct!') else: print('Incorrect.') print('The correct answer is: business.') if words == 'bungaku' and translation == 'literature': print('Correct!') else: print('Incorrect.') print('The correct answer is: literature.') if words == 'rekishi' and translation == 'history': print('Correct!') else: print('Incorrect.') print('The correct answer is: history.') if words == 'shigoto' and translation == 'job' or translation == 'work' or translation == 'occupation': print('Correct!') else: print('Incorrect.') print('The correct answer is: "job" or "work" or "occupation".') if words == 'isha' and translation == 'doctor': print('Correct!') else: print('Incorrect.') print('The correct answer is: doctor.') if words == 'kaishain' and translation == 'office worker': print('Correct!') else: print('Incorrect.') print('The correct answer is: office worker.') if words == 'kookoosei' and translation == 'high school student' or translation == 'highschool student': print('Correct!') else: print('Incorrect.') print('The correct answer is: "high school student" or "highschool student".') if words == 'shufu' and translation == 'house wife': print('Correct!') else: print('Incorrect.') print('The correct answer is: house wife.') if words == 'daigakuinsei' and translation == 'graduate student': print('Correct!') else: print('Incorrect.') print('The correct answer is: graduate student.') if words == 'daigakusei' and translation == 'college student': print('Correct!') else: print('Incorrect.') print('The correct answer is: college student.') if words == 'bengoshi' and translation == 'lawyer': print('Correct!') else: print('Incorrect.') print('The correct answer is: lawyer.') if words == 'okaasan' and translation == 'mother' or translation == 'mom': print('Correct!') else: print('Incorrect.') print('The correct answer is: "mother or "mom".') if words == 'otoosan' and translation == 'father' or translation == 'dad': print('Correct!') else: print('Incorrect.') print('The correct answer is: "father or "dad".') if words == 'oneesan' and translation == 'older sister' or translation == 'big sister': print('Correct!') else: print('Incorrect.') print('The correct answer is: "older sister" or "big sister".') if words == 'oniisan' and translation == 'older brotehr' or translation == 'big brother': print('Correct!') else: print('Incorrect.') print('The correct answer is: "older brother" or "big brother".') if words == 'imooto' and translation == 'younger sister' or translation == 'little sister': print('Correct!') else: print('Incorrect.') print('The correct answer is: "younger sister" or "little sister".') if words == 'otooto' and translation == 'younger brother' or translation == 'little brother': print('Correct!') else: print('Incorrect.') print('The correct answer is: "younger brother" or "little brother".') 

3 Solutions collect form web for “Python-String oder if-Anweisung”

Es gibt mehrere Fragen.

Zuerst vergleicht man words statt word[index] in

 if words == 'ano' and translation == 'um': 

Und an anderen Orten.

Zweitens, für die Logik zu arbeiten, musst du jede if Anweisung umstrukturieren, um viele Incorrect Nachrichten zu vermeiden, die für jede Eingabe ausgedruckt werden.

Vielmehr, dass versucht, dies zu beheben, schlage ich einen mehr datengesteuerten Ansatz:

 import random dictionary = {'ano': 'um', 'ima': 'now', ...} words = list(dictionary.items()) random.shuffle(words) for word, translation in words: print(word) answer = input('Enter the translation: ') if answer == translation: print('Correct!') else: print('Incorrect.') print('The correct answer is: %s.' % translation) 

Nur ein Vorschlag, würde ich ein Programm wie dieses anstelle von all diesen, if else Klauseln

 import random translations = {'ano': 'um', 'ima': 'now', 'eego': 'english'} japanese = translations.keys() random.shuffle(japanese) for word in japanese: print word english = raw_input("Enter the translation: ") if english.lower() == translations[word]: print "Correct" else: print "Incorrect" print "The correct answer is %s" % translations[word] 

Sie sollten wirklich ein Wörterbuch verwenden, oder mindestens zwei Listen dafür.

 words = { "word1": "answer1", "word2": "answer2", "word3": "answer3" } for word in words: answer = input("Translate '" + word + "':") if answer == words[word]: print("Correct!") else: print("Fail! Correct translation would be: " + words[word]) 

Das könnte etwas falsch sein, ich bin auf einem Handy und kann mich nicht erinnern, die Syntax für Wörterbuch iterating atm, müssen Sie es in eine Liste von Tupeln zuerst zu konvertieren.

Bearbeiten: Während ich mit meinem Telefon langsamer war, erschienen wilde 50 Antworten. Entschuldigung für die zusätzliche Antwort: P

  • Konsequent erstellen gleiche zufällige numpy Array
  • Generiere mehrere zufällige Zahlen, um einen Wert in Python zu entsprechen
  • Wie würde ich einen zufälligen Hexdigit-Code-Generator mit .join und für Loops machen?
  • Erstellen von zufälligen Textzeichenfolgen eines gegebenen Musters
  • Lesen Sie zufällige Zeilen aus großer CSV-Datei in Python
  • Python, generieren zufällige String von Klammern
  • Python: Zufällige Zahlen in eine Liste
  • Python: Wie man eine Liste von Listen mit zunehmender Länge aus zufälligen Zahlen erstellt?
  • Gewichtete Stichprobe in Python
  • Lesen Sie eine kleine Stichprobe aus einer großen CSV-Datei in einen Python-Datenrahmen
  • Unterschied zwischen np.random.seed () und np.random.RandomState ()
  • Python ist die beste Programmiersprache der Welt.