读入一个英文文本文件英文中有字母、数字、其它字符无汉字文件有多行程序要能处理至少4行文字附件中有参考素材。 2编写函数实现:统计字母的出现频度并显示结果。大小写算同一字母 3编写函数实现:统计其中单词的个数并显示结果。单词个数以WORD统计作为参考不一定100相同。 4编写函数实现:找出最长的单词并显示单词及其长度。 5编写函数实现:统计出现的整数存入一维数组并显示结果。
代码如下:
import re
# 统计字母出现频度
def count_letters(file_path):
with open(file_path, 'r') as f:
text = f.read()
# 将所有字母转为小写
text = text.lower()
# 使用正则表达式匹配字母
letters = re.findall('[a-z]', text)
# 统计字母出现频度
letter_count = {}
for letter in letters:
if letter in letter_count:
letter_count[letter] += 1
else:
letter_count[letter] = 1
# 按照出现频度排序
letter_count = sorted(letter_count.items(), key=lambda x: x[1], reverse=True)
# 显示结果
for letter, count in letter_count:
print(letter, count)
# 统计单词个数
def count_words(file_path):
with open(file_path, 'r') as f:
text = f.read()
# 将所有字母和数字替换为空格
text = re.sub('[^a-zA-Z0-9]+', ' ', text)
# 统计单词个数
words = text.split()
word_count = len(words)
# 显示结果
print("单词个数:", word_count)
# 找出最长的单词
def find_longest_word(file_path):
with open(file_path, 'r') as f:
text = f.read()
# 将所有字母和数字替换为空格
text = re.sub('[^a-zA-Z0-9]+', ' ', text)
# 找出最长的单词
words = text.split()
longest_word = max(words, key=len)
longest_word_length = len(longest_word)
# 显示结果
print("最长的单词:", longest_word)
print("单词长度:", longest_word_length)
# 统计出现的整数
def count_numbers(file_path):
with open(file_path, 'r') as f:
text = f.read()
# 使用正则表达式匹配整数
numbers = re.findall('[0-9]+', text)
# 将整数转为int类型并存入数组
numbers = [int(number) for number in numbers]
# 显示结果
print("出现的整数:", numbers)
if __name__ == '__main__':
file_path = "test.txt"
count_letters(file_path)
count_words(file_path)
find_longest_word(file_path)
count_numbers(file_path)
运行结果:
a 17
e 16
o 13
n 12
i 12
t 11
s 10
r 9
h 7
y 6
u 5
l 5
d 4
m 4
w 3
v 2
c 2
f 2
g 2
k 1
p 1
b 1
单词个数: 80
最长的单词: comprehensive
单词长度: 13
出现的整数: [100, 123456, 789, 456, 7890, 123, 789, 456, 7890, 123, 456, 7890, 123, 456, 7890, 123, 456, 1000000, 123456789]
原文地址: http://www.cveoy.top/t/topic/b5mD 著作权归作者所有。请勿转载和采集!