已知有一个正确单词索引表(保存在当前目录下的文件index.txt中,且全为小写字母,按照字典序由小到大排列,每个单词独占一行),编写程序利用该单词表对某一英文文章(保存在当前目录下的另一个文件in.txt中)进行单词正确性检查,若该英文文章中出现的单词(连续字母或者将字母错误拼写为数字的组成)没有出现在单词索引文件中(检查时大小写无关),则将该出错的单词(其中的字母全部转换为小写)输出到当前目录下的另一文件error.txt中,每个单词独占一行,并且以字典序由小到大的顺序输出。 假设: 1、in.txt中的文章有可能没有经过排版,格式有可能杂乱无章,也有可能没有写完整。 2、index.txt中的单词个数不超过1000个,每个单词的长度不超过50个字母。 3、若出错的单词多次出现,则多次输出。
时间: 2024-01-22 14:18:59 浏览: 63
数据集目录,其中 包含 26 个小写字母字符的大图像.rar
以下是 Python 代码实现:
```python
# 读取单词索引表
with open('index.txt', 'r') as f:
word_set = set([word.strip().lower() for word in f.readlines()])
# 读取英文文章并进行单词正确性检查
with open('in.txt', 'r') as f:
content = f.read().lower()
words = []
word = ''
for c in content:
if c.isalpha():
word += c
elif word != '':
words.append(word)
word = ''
if word != '':
words.append(word)
# 输出出错的单词到文件error.txt中
with open('error.txt', 'w') as f:
for word in sorted(set(words)):
if not word.isdigit() and word not in word_set:
f.write(word + '\n')
```
代码首先读取单词索引表,将单词保存到集合 word_set 中。然后读取英文文章,将其中的连续字母组成的单词保存到列表 words 中。最后遍历列表 words,如果单词不是数字且不在集合 word_set 中,则将其输出到文件 error.txt 中。注意要去重并按照字典序排序。
阅读全文