f=open("word.txt","r",encoding="gbk") num=0 for line in f: num+=1 flag = True line=line.split(" ") print(f"{num}.{line[1]}") while flag: inputword=input("请输入单词:") if inputword==line[0]: print("答对了!") flag=False if inputword!=line[0]: print("答错了!要继续吗?") print('') select=input("y for yes,n for no") if select=="y": flag=True else: flag=False print(f"正确答案是:{line[0]}") f.close()每次希望自定义抽取多少个单词,以及希望可以当单词拼错时,打n,自动将这个单词放到一个文件里
时间: 2023-12-05 21:20:58 浏览: 75
好的,我理解了你的要求。你可以将上述代码封装进一个函数中,然后在函数中添加两个参数,一个是抽取的单词数量,另一个是单词拼写错误时,是否将单词放入文件中。以下是修改后的代码:
```python
def word_game(num, save_wrong_word):
f = open("word.txt", "r", encoding="gbk")
words = []
for line in f:
words.append(line.split(" "))
f.close()
selected_words = random.sample(words, num)
for i, word in enumerate(selected_words):
print(f"{i+1}.{word[1]}")
wrong_words = []
for word in selected_words:
flag = True
while flag:
input_word = input("请输入单词:")
if input_word == word[0]:
print("答对了!")
flag = False
else:
print("答错了!")
if save_wrong_word:
wrong_words.append(word)
print("要继续吗?")
select = input("y for yes, n for no: ")
if select == "y":
flag = True
else:
flag = False
print(f"正确答案是:{word[0]}")
if save_wrong_word:
with open("wrong_word.txt", "w") as f:
for word in wrong_words:
f.write(f"{word[0]} {word[1]}")
```
你只需要调用 `word_game` 函数,并传入想要抽取的单词数量和是否保存错词文件的参数即可。例如,想要抽取 5 个单词,并且将错误单词保存到文件中,可以这样调用:
```python
word_game(5, True)
```
如果不想保存错误单词,可以将第二个参数改为 `False`。
阅读全文