统计文本中单词数
类型:文件处理
描述
编程统计文本中的单词数量,不包括空格和除单引号以外的标点符号(!"#$%&()*+,./:;<=>?@[]^_{|}~\n),这些符号和空白符一样都是单词的分隔符,数字及多个连续的数字按一个单词计算,类似I’ll和wife’s等单词当成一个词计。
输入格式
文本文件名
输出格式
单词数量
示例 1
输入:
test.txt
输出:
31
参考答案
def read_file(filename):
"""接收文件名为参数,读取文件内容为一个字符串
返回这个字符串。
"""
with open(filename, 'r') as file: # 只读模式打开文件
text = file.read() # 文件内容读入到一个字符串
return text # 返回字符串
def replace_txt(text):
"""接收一个字符串为参数,将其中的特殊字符替换为空格
将字符串根据空格切分为列表,返回这个列表
"""
for ch in '!"#$%&()*+,./:;<=>?@[\\]^_{|}~\n': # 或'''!"#$%&()*+,./:;<=>?@[\]^_{|}~\n'''
text = text.replace(ch, " ") # 将字符串中特殊字符替换为空格,注意要赋值回去
return text.split() # 根据空格将字符串切分为列表返回
if __name__ == '__main__':
name = input() # 输入文件名
txt = read_file(name) # 读文件,返回字符串
result = replace_txt(txt) # 字符串替换和切分
print(len(result)) # 输出列表长度,即单词数量