对于我的程序,我有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)
答案 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