习题解析之:2024政府工作报告数据提取
【问题描述】
附件中为2024年政府工作报告,本题要求将报告中所有包含数字字符的短句(*)进行提取。
输入一个关键词key
如果该关键词key在报告中出现,则统计输出该关键字key在报告中出现的次数,并按照报告中出现顺序依次输出包含该关键词key所有短句,以换行间隔。
如果输入的关键词为数字短句,则输出所有包含数字的短句,以换行间隔。
除以上情况外如果输入的关键词在报告中没有出现过,则输出 未找到关键词
示例:
输入:
卫生
输出:
5
医药卫生
提高医疗卫生服务能力
扩大基层医疗卫生机构慢性病
精神卫生
深入开展健康中国行动和爱国卫生运动
【编程思路】
按题目的要求补充相应的程序代码即可。补充完善后的源程序如下:
import string
def Read_report(name): #本函数已定义完整
#读取报告原文,返回字符串,本函数勿修改。
with open(name,'r',encoding='UTF-8') as f:
return f.read()
#下方为待完成区域
def Short(s):
#定义函数,判断字符串s中是否包含数字字符
for ch in s:
if ch in '0123456789':
return True
return False
def Sign_delete(s):
#定义函数,将报告字符串中的所有中文标点符号替换成英文空格,以便后续分割列表。
sign = ['"', '#', '$', '%', '&', ''', '(', ')', '*', '+', ',', '-', '/', ':', ';', '<', '=', '>', '@', '[', '\', ']', '^', '_', '`', '{', '|', '}', '~', '⦅', '⦆', '「', '」', '、', '\u3000', '、', '〃', '〈', '〉', '《', '》', '「', '」', '『', '』', '【', '】', '〔', '〕', '〖', '〗', '〘', '〙', '〚', '〛', '〜', '〝', '〞', '〟', '〰', '〾', '〿', '–', '—', '‘', '’', '‛', '“', '”', '„', '‟', '…', '‧', '﹏', '﹑', '﹔', '·', '.', '!', '?', '。', '。']
# 继续完成函数定义
for ch in sign:
s = s.replace(ch,' ')
return s
name = 'step6/2024政府工作报告.txt'
report = Read_report(name) #读取报告文件
report = Sign_delete(report) #替换报告中符号,以便后续分隔
key = input() #输入关键词
# 下方继续后续流程设计代码
ls = report.split()
if key == '数字短句':
for x in ls:
if Short(x):
print(x)
else:
ans = []
for x in ls:
if key in x:
ans.append(x)
if len(ans) != 0:
print(len(ans))
for t in ans:
print(t)
else:
print('未找到关键词')
浙公网安备 33010602011771号