1

だから、日本語の授業の勉強を助けるためにこのプログラムを作っています。ご覧のとおり、単語のリストをシャッフルして表示します。次に、プログラムは翻訳を要求します。答えが正しいかどうかをチェックし、適切なメッセージを表示することになっています。ただし、答えが正しいかどうかに関係なく、すべての「間違った」メッセージが表示されます。私の質問は、この問題を解決する方法です。お願いします、助けが必要です。次のレベルの日本語クラスを受ける前に、これを終わらせたいのです。少しでも私を助けてくれる人に感謝します。

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".')
4

3 に答える 3

4

いくつかの問題があります。

wordsまず、あなたは代わりにword[index]比較しています

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

そして他の場所で。

次に、ロジックを機能させるには、すべてifのステートメントを再構築Incorrectして、入力ごとに大量のメッセージが出力されないようにする必要があります。

これを修正しようとするのではなく、よりデータ駆動型のアプローチを提案します。

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)
于 2012-12-03T21:45:21.917 に答える
1

単なる提案ですが、これらすべてのif else句の代わりに、このようなプログラムを使用します

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]
于 2012-12-03T21:50:22.557 に答える
0

これには、実際に辞書を使用するか、少なくとも 2 つのリストを使用する必要があります。

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])

それは多少間違っているかもしれません。私はモバイルを使用していて、atm を反復する辞書の構文を思い出せません。最初にそれをタプルのリストに変換する必要があるかもしれません。

編集:携帯電話でスロータイピングしているときに、ワイルドな50の回答が表示されました. 余分な回答で申し訳ありません:P

于 2012-12-03T21:55:50.410 に答える