文本文件sentence.txt中保存一句英文(不含标点符号),请把还有元音字母的个数最多的前三个英文单词打印出来,并按要求输出。具体要求入下。 (1)以只读方式读取文本文件sentence.txt (2)句子中单词之间以空格分割。 (3)对单词中含有元音字母个数进行递减排序 (4)输出含有超过2个元音字母的单词; (5)输出时含有元音字母的单词靠左排列,占17位
时间: 2024-02-26 14:58:48 浏览: 163
编写一个程序,输出该文本文件中含有的单词总数,分析一个文本文件(英文文章)中 各个词出现的频率,输出该文本文件中所有单词的列表,并与出现次数一起打印出来
好的,这个问题可以通过 Python 代码来实现。你可以尝试以下代码:
```
import re
# 定义元音字母
vowels = set('aeiouAEIOU')
# 读取文件
with open('sentence.txt', 'r') as file:
sentence = file.read().strip()
# 获取单词列表
words_list = re.findall(r'\b\w+\b', sentence)
# 计算每个单词中元音字母的个数
words_vowels_count = {}
for word in words_list:
count = sum(1 for char in word if char in vowels)
if count > 2:
words_vowels_count[word] = count
# 对单词按照元音字母数量递减排序
sorted_words = sorted(words_vowels_count.items(), key=lambda x: x[1], reverse=True)
# 输出前三个单词
for i in range(3):
if i < len(sorted_words):
word, count = sorted_words[i]
print("{:<17}{}".format(word, count))
else:
break
```
这个代码会读取名为 `sentence.txt` 的文本文件,然后按照要求输出含有超过 2 个元音字母的前三个单词。注意,如果文件中没有符合条件的单词,那么程序将不会输出任何内容。
阅读全文