1.统计文件中的中文字数

描述
统计一个文本文件中字数,每个字母按一个汉字计算,不包括所有标点符号和空格。‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

',。?!@#¥%……&*;(:; ) ——+|、·:“”’‘\n’‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

输入格式
输入要统计的文件名 ‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

输出格式
输出字数

def read_file(file):with open(file, 'r', encoding='utf-8') as data:result = data.read()for i in result:if i in ',。?!@#¥%……&*;(:; ) ——+|、·:“”’‘\n':result = result.replace(i,"")return len(result)if __name__ == '__main__':file = input()dic = read_file(file)print(dic)

2.文件中数据转列表

描述
现有一个文本文件,里面有两列数据,中间以制表符分隔(\t), 读取文本文件中的数据,将每一行的每个数据取整,以列表形式做为列表的一个元素,输出列表中的前n个元素。(当n大于元素个数时按实际元素个数输出)‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

文件前5行数据格式如下:‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

7 769.191
7.03 557.626
7.06 422.1
7.09 330.095
7.12 264.934
读取文件内容的语句如下所示:
inFile = open(flieName, ‘r’)
#以只读方式读取文件名为’filename’的文件,将文件全部内容读到inFile变量中。
输入格式
输入一个正整数,如:3‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

输出格式
[[7, 769], [7, 557], [7, 422]]

with open('xrdfile.txt', 'r', encoding='utf-8') as f:n=int(input())ls=[]for i in f.readlines():ls.append(i.strip().split())for i in range(len(ls)):ls[i][0] = int(float(ls[i][0]))ls[i][1] = int(float(ls[i][1]))print(ls[:n])

3.利用数据文件统计成绩

描述
利用附件中的成绩数据进行成绩统计,根据总分进行升序排序后,输出总分最低分和最高分,按总分升序输出前n名同学和后n名同学成绩信息(n为非负数,当n大于数据行数时,按实际行数输出),输出每题的平均成绩。‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

(注:数据文件中最后一列是总分,第4-9列每列为一道题的成绩,打开与关闭文件代码已经给出)‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

输入格式
输入一个正整数‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

data = open('成绩单.csv','r', encoding='utf-8')
score=[]
n=int(input())
for line in data:line=line.replace('\n','')score.append(line.split(','))
score.sort(key=lambda x:int(x[9]))
if n>len(score):n=len(score)print("最低分{}分,最高分{}分".format(score[0][9],score[-1][9]))
print(score[:n])
print(score[-n:])s=[0,0,0,0,0,0]
for i in range(len(score)):for j in range(len(s)):s[j]=s[j]+int(score[i][j+3])for l in range(len(s)):s[l]=round(s[l]/len(score),2)
print(s)data.close()

4.文本分析与加密

描述
读取文件中的内容为字符串可以用以下函数实现:

def read_file(file):
with open(file, ‘r’, encoding=‘utf-8’) as f:
return f.read() # 返回值为字符串
读取附件中的文件,完成以下操作:
1.分类统计文件中大写字母、小写字母、数字、空白字符(包括空格、\n、\t等,可用isspace()方法判断)和其他字符的数量
2.输出文件中单词的数量(将其中所有标点符号替换为空格,再根据空格对字符串进行切分可以得到元素为单词的列表。数字按单词统计,如“ 1994” 计算一个单词)
3.用恺撒加密方法对上述文件内容进行加密,为提高加密强度,约定输入一个秘密单词来产生偏移量,偏移量计算方法为先计算用户输入的字符串中每个字符的ASCII值的和,再对26取模,结果作为偏移量。为避免偏移量恰好为0,本题约定秘密单词为用于表示星期几的单词,即’Monday’, ‘Tuesday’, ‘Wednesday’, ‘Thursday’, ‘Friday’, ‘Saturday’, 'Sunday’中的一个。
在密码学中,凯撒密码是一种最简单且最广为人知的加密技术。“恺撒密码”据传是古罗马恺撒大帝用来保护重要军情的加密系统。它是一种替换加密的技术,明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文。例,当偏移量是3的时候,所有的字母A将被替换成D,B变成E,以此类推,小写字母也一样处理,其他字符忽略,不作任何改变。
输入格式
一个代表星期几的单词,‘Monday’, ‘Tuesday’, ‘Wednesday’, ‘Thursday’, ‘Friday’, ‘Saturday’, 'Sunday’中的一个
输出格式
依序输出:‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

1.文件中大写字母、小写字母、数字、空白字符和其他字符的数量
2.文件中单词的数量
3.偏移量
4.用恺撒加密方法对上述文件内容进行加密的结果


def encrypating(character,n):if character.islower():temp = ord('a');character = chr(temp+(ord(character)-temp+n)%26)else:temp = ord('A');character = chr(temp+(ord(character)-temp+n)%26)return characterl = list(str(input()));secret = 0
for i in l:secret = (secret + ord(i))%26f = open("mayun.txt","r")
content = f.readlines()
upperchr = lowerchr = num = space = others = 0
words = 1for line in content:for i in line:if i.isupper():upperchr+=1elif i.islower():lowerchr+=1elif i.isspace():space+=1elif i.isdigit():num+=1else:others+=1str = line.replace('.', '')str = str.replace(',', '')str = str.replace("'", '')l = list(str.split(' '))words+=len(l)
print("%d %d %d %d %d"%(upperchr,lowerchr,num,space,others))
print("共有%d单词"% words)
print("%d"% secret)for line in content:ret = ""for char in line:if char.isalpha():ret += encrypating(char,secret)elif char != '\n':ret += charprint(ret)

5.身份证号批量升位

描述
我国自1999年10月1日身份证号码由15位改成18位,1999年以前出生的人持有的旧身份证号码均为15位,1999年10月1日以后出生的人获得的身份证号都是18位。
读取附件中文本文件id15.txt,用户输入一个正整数 n (n<=30),将其中的前 n 行中的15位身份证号升到18位并输出,身份证号升位规则如下:
第一步,在原十五位数身份证的第六位数后面插入19 (1905年1月1日以后出生),这样身份证号码即为十七位数;
第二步,按照国家规定的统一公式计算出第十八位数,作为校验码放在第二代身份证的尾号。
校验码计算方法:将身份证前十七位数分别乘以不同系数并求和
S = Sum(Ai * Wi)
Ai:表示第i位置上的身份证号码数字值, i = 0, … , 16
Wi:表示第i位置上的加权因子,Wi: 7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2
S对11取模得到余数0-10,对应的校验码如下:
余数 Y: 0 1 2 3 4 5 6 7 8 9 10
校验码: 1 0 X 9 8 7 6 5 4 3 2

下载附件中的文件,与本地创建的文件放在同一文件夹下测试使用,读取文件可以参考以下语句:‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

n = int(input()) # 读入一个正整数
with open(‘id15.txt’,‘r’,encoding=‘utf-8’) as file: # 打开文件,创建文件对象
for i in range(n): # 循环读取 n 行
line = file.readline() # 每次读取文件中的一行,line为一个字符串
本题输出时,身份证与姓名数据间的间隔为中文全角空格,可以复制使用以下的sep参数。‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬
sep=’ ’
输入格式
输入一个正整数 n (n<=30)‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

输出格式‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

n行18位的身份证号及姓名(保持与原文件格式一致)

def id15218(id15):a = id15id15 = a[ :6] + '19' + a[6:]Wi = [7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2]s = 0for i in range(17):s = s + int(id15[i]) * int(Wi[i])Y = str(s % 11)if int(Y) < 10:before = '0 1 2 3 4 5 6 7 8 9'after = '1 0 X 9 8 7 6 5 4 3'table = ''.maketrans(before,after)Y =Y.translate(table)else:Y = '2'id18 = id15[:17] + Y + id15[17:]id18 = id18.replace(id18[18],' '*1)return id18n = int(input())
with open('id15.txt','r',encoding='utf-8') as file:for i in range(n):line = file.readline()   # line 的内容是文件中的一行,字符串类型print(id15218(line),end = '')

6.手机销售统计

描述
文件中包含有2018和2019手机销售榜单数据(市场份额百分数),请根据要求升序输出分析结果:‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

1.输入’1’时,以列表形式分别输出2019年和2018年上榜品牌‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

1.输入’2’时,以列表形式输出2019年和2018年都上榜的品牌‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

1.输入’3’时,以列表形式输出2019年和2018年上榜的所有品牌‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

1.输入’4’时,以列表形式输出2019年新上榜品牌‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

1.输入’5’时,以列表形式输出2019年新上榜和落榜品牌

sale2018=[]
sale2019=[]
with open('sale2018.csv', 'r', encoding='utf-8') as data2018:for line in data2018:temp1=line.split(',')sale2018.append(temp1)
with open('sale2019.csv', 'r', encoding='utf-8') as data2019:for line in data2019:temp2=line.split(',')sale2019.append(temp2)
n=int(input())
set2018={x[0] for x in sale2018}
set2019={x[0] for x in sale2019}
if n == 1:ls2019=list(set2019)ls2018=list(set2018)ls2019.sort()ls2018.sort()print(ls2019)print(ls2018)
elif n == 2:set2=set2019&set2018ls=list(set2)ls.sort()print(ls)
elif n == 3:set3=set2018|set2019ls=list(set3)ls.sort()print(ls)
elif n == 4:set4=set2019-set2018ls=list(set4)ls.sort()print(ls)
elif n == 5:set5=set2018^set2019ls=list(set5)ls.sort()print(ls)

主题7 文件与文件夹操作 单元作业相关推荐

  1. 【MOOC】华中科技大学操作系统慕课答案-单元作业+第1~2章开放性思考题

    单元作业答案如果没大问题的话,多半是直接摘抄自PPT. 文章目录 第一章 操作系统概述 单元作业(1) 开放性思考题 第二章 操作系统逻辑结构 单元作业 开放性思考题 第三章 操作系统用户界面 单元作 ...

  2. 关于UWP中下载文件夹操作问题

    代码最后结果总结: private async void btn3_Click(object sender, RoutedEventArgs e){//两种方式应对创建时已有相同文件:1.try-ca ...

  3. delphi 文件夹操作

    文件的拖放和打开拖拽 user shellapi type TForm1 = class(TForm) ListView1: TListView; procedure FormCreate(Sende ...

  4. 计算机文件夹操作教案,文件和文件夹的基本操作教案

    <文件和文件夹的基本操作>教案 教学背景: 本课是小学信息技术四年级(上)第3章<文件和文件夹的基本操作>,在教学安排上,继前一节学生学会了建立和打开关闭文件和文件夹之后,是学 ...

  5. 计算机文件夹操作教案,《文件和文件夹的基本操作》的说课稿

    大家好!我是麻豆儿,今天我说课的内容是广东省教育出版社出版的信息技术课本第二册,第一章第二节<文件和文件夹的基本操作>的教学设计.本节课我将从教什么.怎样教.为什么这样教,深入从教学内容. ...

  6. 7 Python文件、文件夹、word及excel操作

    0 建议学时和要求 4学时 掌握os和os.path模块对文件和文件夹操作的函数 掌握shutil模块对文件和文件夹操作的函数 掌握扩展库openpyxl对Excel文件的操作 1 文件的高级操作 1 ...

  7. Bash 文件夹操作

    mkdir, rm,find都是对tree结构的文件夹进行的操作,可以安装tree用tree命令直接打印出树的结构 文件夹的操作分为只操作当前文件夹的集合数据和迭代操作的tree数据 Bash迭代当前 ...

  8. python中对文件、文件夹(文件操作函数)的操作

    python中对文件.文件夹(文件操作函数)的操作需要涉及到os模块和shutil模块. 得到当前工作目录,即当前Python脚本工作的目录路径: os.getcwd() 返回指定目录下的所有文件和目 ...

  9. C++ :常用文件、文件夹操作汇总

    文件.文件夹操作 1.创建文件夹 2.创建文件 3.删除文件 4.删除文件夹 5.删除一个目录下所有的文件夹 6.清空文件夹 7.读取文件 8.写入文件 9.写入随机文件 10.读取文件属性 11.写 ...

最新文章

  1. vs2017报错 popen pclose
  2. ASP.NET Core IHostEnvironment和IApplicationLifetime介绍
  3. python post 远程主机强迫关闭了一个现有的连接_ConnectionResetError:[WinError10054远程主机强迫关闭一个现有连接...
  4. 大文件分片上传前端框架_基于Node.js的大文件分片上传
  5. H5新增的标签和属性
  6. python opencv轮廓检测_OpenCV 轮廓检测的实现方法
  7. NOIP模拟 color(DP)
  8. 麒麟990 5G芯片加持!华为nova 6 5G通过3C认证
  9. 浏览器 CSS Hack 收集
  10. 谈360下拉词360下拉框的优势及360搜索推广方法有哪些?
  11. 惠斯通电桥信号调理芯片_变频器通电后无反应,如何检查维修?
  12. 面试常考:Java中synchronized和volatile有什么区别?
  13. Eclipse安装Lombok
  14. 渗透测试工程师可以写进简历的技能介绍部分
  15. 201871010132——张潇潇《面向对象程序设计JAVA》第二周学习总结
  16. QA是干什么的?(职责所在????)
  17. 指针的大小与什么有关
  18. php统计字数函数,微博内容字数统计函数(PHP版)
  19. 用Python分析广州房地产市场
  20. 优思学院|利用Excel进行双样本t检验

热门文章

  1. Cocos2d-JS 加载网络地址图片
  2. QQ兴趣部落 大批量引流实战技巧
  3. linux运行echo,Linux中echo命令起什么作用呢?
  4. PDF怎么插入页?将页面添加到 PDF 文档的 3 种简单方法
  5. 微信小程序开源项目库集合,附demo下载
  6. 【UE4】官方课程笔记
  7. ansible playbook中 tags 的用法
  8. 为什么 VS Code 会这么牛逼?
  9. 项目变更控制委员会(CCB)
  10. zz谷村新司《星》(昴)日文歌词 中文歌词及随感一则