Pygame - 寻找2个.txt文件和用户输入的匹配项

时间:2017-11-25 17:33:41

标签: python pygame

对于我的程序,我有2个.txt文件:一个带有正确拼写的单词(wordsCorrect.txt),另一个带有相同的单词,在同一行,但以某种方式拼写错误。其中一个拼写错误的单词随机挑选并显示在屏幕上。用户必须输入该单词的正确版本。

我尝试编写一些代码来比较.txt文件中的单词,但无法弄清楚如何检查用户输入是否与正确的单词匹配,而后者又匹配屏幕上随机选择的单词。如果这个问题得到了解释,我很抱歉,但任何帮助都会很棒!

   while word_pick == True:
        for event in pg.event.get():
            file1 = open("words.txt","r")
            file2 = open("wordsCorrect.txt","r")
            with file1 and file2:
                same = set(file1).intersection(file2)

1 个答案:

答案 0 :(得分:3)

不要打开并读取事件循环中的文件,否则每次将事件添加到队列时都会反复读取文件,例如,如果您移动鼠标或按键。

我建议将拼写错误的单词与错误的单词一起存储在一个文件中(可能是csv文件),创建一个字典,打开文件并添加拼写错误的单词作为键,将正确的单词添加为值。

words = {}

with open('words.txt') as f:
    for line in f:
        misspelled, correct = line.strip().split(',')  # Comma as word separator.
        words[misspelled] = correct

然后你可以用这种方式检查用户输入是否正确:

current_word = 'bred'
user_input = 'bread'
if words[current_word] == user_input:
    print('Correct answer.')

或者,您可以使用zip功能将两个文件中的单词压缩在一起。这样更容易出错,因为文件可能会有不同的行号。

with open('misspelled.txt') as f1, open('correct_words.txt') as f2:
    for misspelled, correct in zip(f1, f2):
        misspelled = misspelled.strip()
        correct = correct.strip()
        words[misspelled] = correct