“Python题库:文件”的版本间的差异
(→统计文本中单词数) |
|||
(未显示同一用户的8个中间版本) | |||
第1行: | 第1行: | ||
− | == | + | ==替换文件中的敏感信息(2022重点看)== |
类型:文件处理 | 类型:文件处理 | ||
第90行: | 第90行: | ||
(此处仅给出第一行和最后一行数据,供参考格式) | (此处仅给出第一行和最后一行数据,供参考格式) | ||
+ | |||
+ | ==统计文本中单词数(2022重点看)== | ||
+ | |||
+ | 类型:文件处理 | ||
+ | |||
+ | ===描述=== | ||
+ | |||
+ | 编程统计文本中的单词数量,不包括空格和除单引号以外的标点符号(!"#$%&()*+,./:;<=>?@[\]^_{|}~\n),这些符号和空白符一样都是单词的分隔符,数字及多个连续的数字按一个单词计算,类似I'll和wife's等单词当成一个词计。 | ||
+ | |||
+ | ===输入格式=== | ||
+ | |||
+ | 文本文件3.txt: | ||
+ | |||
+ | <nowiki> | ||
+ | Amerigo Bonasera sat in New York Criminal Court Number 3 and waited for justice;vengeance on the men who had so cruelly hurt his daughter, who had tried to dishonor her. | ||
+ | </nowiki> | ||
+ | |||
+ | ===输出格式=== | ||
+ | |||
+ | 单词数量 | ||
+ | |||
+ | 示例 1 | ||
+ | |||
+ | 输入: test.txt | ||
+ | |||
+ | 输出: | ||
+ | 31 | ||
+ | ``` | ||
+ | |||
+ | ==统计字母数量== | ||
+ | 类型:文件 | ||
+ | |||
+ | ===描述=== | ||
+ | 读取附件是一篇英文短文,请编写程序统计这篇短文前 n 行中每一个英文字母出现的次数,结果按次数降序排列,次数相同时,按字母表顺序输出。若 n 值大于短文行数,输出整篇文章中每一个英文字母出现的次数(大写字母按小写字母统计)。 | ||
+ | |||
+ | 附件:英文文本下载:https://python123.io/resources/pye/hamlet.txt | ||
+ | |||
+ | ===输入格式=== | ||
+ | 输入一个正整数 n | ||
+ | |||
+ | ===输出格式=== | ||
+ | 分行输出每个字母的数量,数量占3个字符宽度,居右对齐(参考示例输出) | ||
+ | |||
+ | 示例 1 | ||
+ | |||
+ | 输入: | ||
+ | |||
+ | 10 | ||
+ | |||
+ | 输出: | ||
+ | |||
+ | <nowiki>e 的数量是 179 个 | ||
+ | a 的数量是 125 个 | ||
+ | t 的数量是 121 个 | ||
+ | h 的数量是 116 个 | ||
+ | o 的数量是 101 个 | ||
+ | s 的数量是 92 个 | ||
+ | i 的数量是 91 个 | ||
+ | n 的数量是 88 个 | ||
+ | d 的数量是 77 个 | ||
+ | r 的数量是 60 个 | ||
+ | l 的数量是 49 个 | ||
+ | f 的数量是 46 个 | ||
+ | w 的数量是 45 个 | ||
+ | m 的数量是 41 个 | ||
+ | y 的数量是 40 个 | ||
+ | u 的数量是 35 个 | ||
+ | c 的数量是 32 个 | ||
+ | b 的数量是 29 个 | ||
+ | g 的数量是 20 个 | ||
+ | k 的数量是 19 个 | ||
+ | p 的数量是 13 个 | ||
+ | v 的数量是 9 个 | ||
+ | q 的数量是 1 个 | ||
+ | x 的数量是 1 个 | ||
+ | j 的数量是 0 个 | ||
+ | z 的数量是 0 个</nowiki> | ||
+ | |||
+ | == 地区查询== | ||
+ | |||
+ | |||
+ | ===描述=== | ||
+ | |||
+ | 附件文件中包含全国各地区的地区编码,对应身份证的前6位。身份证的前2位代表省名,在文件中可能存在身份证前2位数字后面加4个0的编码,代表省、自治区或直辖市;身份证号前4位代码地区名,在文件中可能存在身份证前4个数字后面加2个0的编码,表示市或地区。省和地区这两个编码也有可能不存在。输入身份证号前6位,查询到该编码对应的省、市、县(区)。某一项查询不到时,返回并输出空字符串。 | ||
+ | |||
+ | 附件文件下载: | ||
+ | |||
+ | <nowiki>链接:https://pan.baidu.com/s/1sQyAlopW9QdqSiEBcWSPPw?pwd=te6v | ||
+ | 提取码:te6v</nowiki> | ||
+ | |||
+ | ===输入格式=== | ||
+ | |||
+ | 输入身份证号前6位 | ||
+ | |||
+ | ===输出格式=== | ||
+ | |||
+ | 参考示例分三行输出省、市、县(区) | ||
+ | |||
+ | 示例 1 | ||
+ | |||
+ | <nowiki>输入: | ||
+ | 110113 | ||
+ | 输出: | ||
+ | 北京 | ||
+ | 顺义区 | ||
+ | </nowiki> | ||
+ | |||
+ | 示例 2 | ||
+ | <nowiki> | ||
+ | 输入: | ||
+ | 421221 | ||
+ | 输出: | ||
+ | 湖北 | ||
+ | 咸宁市 | ||
+ | 嘉鱼县</nowiki> | ||
+ | |||
+ | ==Tiobe排行榜数据处理== | ||
+ | 类型:文件 | ||
+ | |||
+ | ===描述=== | ||
+ | |||
+ | 附件文件tiobe.txt是截止2020年5月为止Tiobe程序设计语言排行榜前十的数据,包括'C','Java','Python','C++','C#','Visual Basic','JavaScript','PHP','SQL','R'这10种程序设计语言某年某月的热度指标。请处理tiobe.txt文件中的文本,使其能通过语言名称和年份进行热度指标的查询。 | ||
+ | |||
+ | 题目要求输入一个程序设计语言名称和一个年份,筛选出该语言该年的数据信息并按要求输出相关数据。 | ||
+ | |||
+ | 提示: | ||
+ | |||
+ | (1)dict1=eval("{'c':[[(2001, 5, 30), 20.24], [(2001, 6, 30), 20.77], [(2001, 7, 30), 20.75] ] }")语句可以直接将字符串转换为字典赋值给dict1。 | ||
+ | |||
+ | (2)可以让文件里所有数据形成字典,形如{'c':[[(2001, 5, 30), 20.24], [(2001, 6, 30), 20.77], [(2001, 7, 30), 20.75]] ,'python':[[(2001,5,20),5.7],[(2001,6,20,6.7)],[(2001,7,20),12.9]], ... }。 | ||
+ | |||
+ | 附件文件下载: | ||
+ | |||
+ | 链接:https://pan.baidu.com/s/1riBJXOD75jXS9StxrIOnRA?pwd=pjhx | ||
+ | 提取码:pjhx | ||
+ | |||
+ | ===输入格式=== | ||
+ | |||
+ | 输入为两行: | ||
+ | |||
+ | 第一行是一个字符串,为某程序设计语言的名称PL_name; | ||
+ | |||
+ | 第二行为一个正整数year。 | ||
+ | |||
+ | ===输出格式=== | ||
+ | |||
+ | (1)如果在给定的tiobe数据中能查询到PL_name在year年份的数据,则按照示例格式输出PL_name在year年的所有指标数据(按照日期升序排列),并输出本年热度指标的平均值(保留小数点后两位)。 | ||
+ | |||
+ | (2)如果在给定的tiobe数据中不能查询到PL_name在year年份的数据,则输出“没有查到PL_name语言year年的tiobe数据”。 | ||
+ | |||
+ | 注意:查询时不考虑PL_name的大小写。 | ||
+ | |||
+ | 示例 1 | ||
+ | |||
+ | 输入: | ||
+ | |||
+ | python | ||
+ | |||
+ | 2001 | ||
+ | |||
+ | 输出: | ||
+ | |||
+ | <nowiki>[(2001, 5, 30), 1.25] | ||
+ | [(2001, 6, 30), 1.13] | ||
+ | [(2001, 7, 30), 1.2] | ||
+ | [(2001, 8, 28), 1.17] | ||
+ | [(2001, 9, 26), 1.28] | ||
+ | [(2001, 10, 28), 1.23] | ||
+ | [(2001, 11, 31), 1.04] | ||
+ | python语言2001年的tiobe平均值是1.19</nowiki> | ||
+ | |||
+ | 示例2 | ||
+ | |||
+ | 输入: | ||
+ | |||
+ | R | ||
+ | 2008 | ||
+ | |||
+ | 输出: | ||
+ | |||
+ | <nowiki>[(2008, 0, 3), 0.04] | ||
+ | [(2008, 1, 7), 0.06] | ||
+ | [(2008, 5, 1), 0.09] | ||
+ | [(2008, 6, 2), 0.08] | ||
+ | [(2008, 7, 3), 0.06] | ||
+ | [(2008, 8, 3), 0.07] | ||
+ | [(2008, 9, 6), 0.07] | ||
+ | [(2008, 10, 2), 0.08] | ||
+ | [(2008, 11, 3), 0.07] | ||
+ | |||
+ | r语言2008年的tiobe平均值是0.07 | ||
+ | </nowiki> | ||
+ | |||
+ | 示例3 | ||
+ | |||
+ | 输入: | ||
+ | |||
+ | Visual Basic | ||
+ | |||
+ | 2001 | ||
+ | |||
+ | 输出: | ||
+ | |||
+ | 没有查到visual basic语言2001年的tiobe数据 | ||
+ | |||
+ | 示例4 | ||
+ | |||
+ | <nowiki>输入: | ||
+ | Lisp | ||
+ | 2001 | ||
+ | 输出: | ||
+ | 没有查到lisp语言2001年的tiobe数据</nowiki> | ||
+ | |||
+ | ==csv文件排序输出== | ||
+ | ===描述=== | ||
+ | 读入grade0.csv文件,按照要求对第i列升序排列后输出。(提示:可以使用语句fo=open('grade0.csv','r',encoding='UTF-8')来打开文件。) | ||
+ | |||
+ | Grade0.csv文件的内容形如下图: | ||
+ | |||
+ | [[文件:python2022120202.png|600px]] | ||
+ | |||
+ | 链接:https://pan.baidu.com/s/12nLDjcB_fUyqI60r7Ui1PQ?pwd=wrl3 | ||
+ | 提取码:wrl3 | ||
+ | --来自百度网盘超级会员V9的分享 | ||
+ | |||
+ | ===输入格式=== | ||
+ | 输入为一个数正整数 i,要求根据 grade0.csv 文件的第 i 列值升序排列后输出文件中的数据,当第 i 列数据值相同时,按第 1 列数据的值辅助排序(测试数据保证为正整数且不超过数据列数)。 | ||
+ | |||
+ | ===输出格式=== | ||
+ | 按行输出排序后的信息,数据列之间用tab(‘\t’)分隔,最后一列后面没有空格。 | ||
+ | |||
+ | 输入输出示例 | ||
+ | |||
+ | 输入 4 | ||
+ | |||
+ | 输出 | ||
+ | |||
+ | <nowiki> | ||
+ | |||
+ | 20170101 章阳 Male A | ||
+ | |||
+ | 20170102 徐芳 Female A | ||
+ | |||
+ | 20170112 胡瑞欣 Female A | ||
+ | |||
+ | 20170113 田益宾 Male A | ||
+ | |||
+ | 20170115 张铭武 Male A | ||
+ | |||
+ | 20170106 周思云 Female B | ||
+ | |||
+ | 20170109 刘春燕 Female B | ||
+ | |||
+ | 20170110 刘兴怡 Female B</nowiki> |
2022年12月27日 (二) 23:09的最新版本
目录
- 1 替换文件中的敏感信息(2022重点看)
- 1.1 描述
- 1.2 输入格式
- 1.3 输出格式
- 2 缺失数据处理
- 3 统计文本中单词数(2022重点看)
- 3.1 描述
- 3.2 输入格式
- 3.3 输出格式
- 4 统计字母数量
- 5 地区查询
- 6 Tiobe排行榜数据处理
- 7 csv文件排序输出
替换文件中的敏感信息(2022重点看)
类型:文件处理
描述
假设我们有一份文件(编码格式UTF-8),文件中包含了很多个人隐私信息。 现在需要一份去除其中敏感信息的版本,将文件中所有手机号的4~7位和身份证号的7~14位用 * 替换。 示例: 如果读入文件内容为: 张三 居住地:武汉 身份证号:420111199909091234 手机号:13013013130
输出结果是:
张三 居住地:武汉 身份证号:420111********1234 手机号:130****3130
输入格式
读取附件的文件123.txt:
张三 居住地:武汉 身份证号:420111199909091234 手机号:13212341234 李四 居住地:北京 身份证号:11010120000101234X 手机号:13988777777 王五 居住地:深圳 身份证号:610101198808082222 手机号:13766654321
输出格式
张三 居住地:武汉 身份证号:420111********1234 手机号:130****3130 示例 1 输入: 文件部分内容: 张三 居住地:武汉 身份证号:420111199909091234 手机号:13013013130 输出: 文件部分内容输出: 张三 居住地:武汉 身份证号:420111********1234 手机号:130****3130
缺失数据处理
类型:文件
===描述===
附件文件中存在一些缺失数据,请找出这些缺失值并用输入的字符串 s 来替换。
输入格式
输入一个字符串s
给定一个文件123.csv:
,,20.76249006,0.000168044,,,18.9104994,0.08860522 ,,20.77301274,0.000149807,,,18.92102208,0.086064377 ,,20.78353541,0.00013318,,,18.93154475,0.083365648 ,,20.79405809,0.000118071,,,18.94206743,0.080528602 ,,20.80458076,0.000104387,,,18.9525901,0.077573307 ,,20.81510343,9.20E-05,,,18.96311277,0.07452009 ,,22.33036852,0,,,18.97363545,0.071389313 ,,,,,,18.98415812,0.068201145 ,,,,,,18.9946808,0.064975352 ,,,,,,19.00520347,0.061731102 ,,,,,,19.01572615,0.058486784 ,,,,,,19.02624882,0.055259852 ,,,,,,19.03677149,0.052066246
输出格式
处理结果以二维列表形式输出,元素为原文件的每一行切分成的列表
示例 1
输入: a 输出: [['a', 'a', '20.76249006', '0.000168044', 'a', 'a', '18.9104994', '0.08860522'], ...... ['a', 'a', 'a', 'a', 'a', 'a', '19.03677149', '0.052066246']]
(此处仅给出第一行和最后一行数据,供参考格式)
统计文本中单词数(2022重点看)
类型:文件处理
描述
编程统计文本中的单词数量,不包括空格和除单引号以外的标点符号(!"#$%&()*+,./:;<=>?@[\]^_{|}~\n),这些符号和空白符一样都是单词的分隔符,数字及多个连续的数字按一个单词计算,类似I'll和wife's等单词当成一个词计。
输入格式
文本文件3.txt:
Amerigo Bonasera sat in New York Criminal Court Number 3 and waited for justice;vengeance on the men who had so cruelly hurt his daughter, who had tried to dishonor her.
输出格式
单词数量
示例 1
输入: test.txt
输出: 31 ```
统计字母数量
类型:文件
描述
读取附件是一篇英文短文,请编写程序统计这篇短文前 n 行中每一个英文字母出现的次数,结果按次数降序排列,次数相同时,按字母表顺序输出。若 n 值大于短文行数,输出整篇文章中每一个英文字母出现的次数(大写字母按小写字母统计)。
输入格式
输入一个正整数 n
输出格式
分行输出每个字母的数量,数量占3个字符宽度,居右对齐(参考示例输出)
示例 1
输入:
10
输出:
e 的数量是 179 个 a 的数量是 125 个 t 的数量是 121 个 h 的数量是 116 个 o 的数量是 101 个 s 的数量是 92 个 i 的数量是 91 个 n 的数量是 88 个 d 的数量是 77 个 r 的数量是 60 个 l 的数量是 49 个 f 的数量是 46 个 w 的数量是 45 个 m 的数量是 41 个 y 的数量是 40 个 u 的数量是 35 个 c 的数量是 32 个 b 的数量是 29 个 g 的数量是 20 个 k 的数量是 19 个 p 的数量是 13 个 v 的数量是 9 个 q 的数量是 1 个 x 的数量是 1 个 j 的数量是 0 个 z 的数量是 0 个
地区查询
===描述===
附件文件中包含全国各地区的地区编码,对应身份证的前6位。身份证的前2位代表省名,在文件中可能存在身份证前2位数字后面加4个0的编码,代表省、自治区或直辖市;身份证号前4位代码地区名,在文件中可能存在身份证前4个数字后面加2个0的编码,表示市或地区。省和地区这两个编码也有可能不存在。输入身份证号前6位,查询到该编码对应的省、市、县(区)。某一项查询不到时,返回并输出空字符串。
附件文件下载:
链接:https://pan.baidu.com/s/1sQyAlopW9QdqSiEBcWSPPw?pwd=te6v 提取码:te6v
输入格式
输入身份证号前6位
===输出格式===
参考示例分三行输出省、市、县(区)
示例 1
输入: 110113 输出: 北京 顺义区
示例 2
输入: 421221 输出: 湖北 咸宁市 嘉鱼县
Tiobe排行榜数据处理
类型:文件
描述
附件文件tiobe.txt是截止2020年5月为止Tiobe程序设计语言排行榜前十的数据,包括'C','Java','Python','C++','C#','Visual Basic','JavaScript','PHP','SQL','R'这10种程序设计语言某年某月的热度指标。请处理tiobe.txt文件中的文本,使其能通过语言名称和年份进行热度指标的查询。
题目要求输入一个程序设计语言名称和一个年份,筛选出该语言该年的数据信息并按要求输出相关数据。
提示:
(1)dict1=eval("{'c':[[(2001, 5, 30), 20.24], [(2001, 6, 30), 20.77], [(2001, 7, 30), 20.75] ] }")语句可以直接将字符串转换为字典赋值给dict1。
(2)可以让文件里所有数据形成字典,形如{'c':[[(2001, 5, 30), 20.24], [(2001, 6, 30), 20.77], [(2001, 7, 30), 20.75]] ,'python':[[(2001,5,20),5.7],[(2001,6,20,6.7)],[(2001,7,20),12.9]], ... }。
附件文件下载:
链接:https://pan.baidu.com/s/1riBJXOD75jXS9StxrIOnRA?pwd=pjhx 提取码:pjhx
===输入格式===
输入为两行:
第一行是一个字符串,为某程序设计语言的名称PL_name;
第二行为一个正整数year。
输出格式
(1)如果在给定的tiobe数据中能查询到PL_name在year年份的数据,则按照示例格式输出PL_name在year年的所有指标数据(按照日期升序排列),并输出本年热度指标的平均值(保留小数点后两位)。
(2)如果在给定的tiobe数据中不能查询到PL_name在year年份的数据,则输出“没有查到PL_name语言year年的tiobe数据”。
注意:查询时不考虑PL_name的大小写。
示例 1
输入:
python
2001
输出:
[(2001, 5, 30), 1.25] [(2001, 6, 30), 1.13] [(2001, 7, 30), 1.2] [(2001, 8, 28), 1.17] [(2001, 9, 26), 1.28] [(2001, 10, 28), 1.23] [(2001, 11, 31), 1.04] python语言2001年的tiobe平均值是1.19
示例2
输入:
R 2008
输出:
[(2008, 0, 3), 0.04] [(2008, 1, 7), 0.06] [(2008, 5, 1), 0.09] [(2008, 6, 2), 0.08] [(2008, 7, 3), 0.06] [(2008, 8, 3), 0.07] [(2008, 9, 6), 0.07] [(2008, 10, 2), 0.08] [(2008, 11, 3), 0.07] r语言2008年的tiobe平均值是0.07
示例3
输入:
Visual Basic
2001
输出:
没有查到visual basic语言2001年的tiobe数据
示例4
输入: Lisp 2001 输出: 没有查到lisp语言2001年的tiobe数据
csv文件排序输出
描述
读入grade0.csv文件,按照要求对第i列升序排列后输出。(提示:可以使用语句fo=open('grade0.csv','r',encoding='UTF-8')来打开文件。)
Grade0.csv文件的内容形如下图:
链接:https://pan.baidu.com/s/12nLDjcB_fUyqI60r7Ui1PQ?pwd=wrl3 提取码:wrl3 --来自百度网盘超级会员V9的分享
输入格式
输入为一个数正整数 i,要求根据 grade0.csv 文件的第 i 列值升序排列后输出文件中的数据,当第 i 列数据值相同时,按第 1 列数据的值辅助排序(测试数据保证为正整数且不超过数据列数)。
输出格式
按行输出排序后的信息,数据列之间用tab(‘\t’)分隔,最后一列后面没有空格。
输入输出示例
输入 4
输出
20170101 章阳 Male A 20170102 徐芳 Female A 20170112 胡瑞欣 Female A 20170113 田益宾 Male A 20170115 张铭武 Male A 20170106 周思云 Female B 20170109 刘春燕 Female B 20170110 刘兴怡 Female B