字符串、文件操作,英文词频统计预处理
2019-03-06 14:35 CMis180kg 阅读(228) 评论(0) 编辑 收藏 举报作业要求来源于:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/2646
作业1.字符串操作:
- 解析身份证号:生日、性别、出生地等。
实现的代码如下:
add_num = {'440883':'吴川市','440802':'赤坎区','440803':'霞山区','440811':'麻章区','440804':'坡头区','440881':'廉江市'} id = input('请输入身份证号码:') birth_year = id[6:10] birth_month = id[10:12] birth_day = id[12:14] sex = id[16] if int(sex)%2 == 0: sex='女' else: sex='男' print('您输入的身份证号码是(湛江市):{}'.format(id)) print('出生地编码:{}\n出生时间:{}年{}月{}日\n性别:{}'.format(add_num[id[0:6]],birth_year,birth_month,birth_day,sex))
代码执行效果如下图所示:
- 凯撒密码编码与解码
实现的代码如下:
word=input("请输入明文:"); n=input("请输入偏移值:"); s=ord("a"); e=ord("z"); choose=input("请输入您的选择,解码选择1,编码选择2:"); print("凯撒密码编码结果为:",end="") for i in word: if s<=ord(i)<=e: if choose == "2": print(chr(s+(ord(i)-s+int(n))%26),end=""); elif choose == "1": print("凯撒密码解码结果为:", end="") print(chr(s + (ord(i)-s-int(n)) % 26), end=""); else: print("您的选择输入有误!") else: print(i,end="");
执行效果如下图所示:
- 网址观察与批量生成
实现代码如下:
for i in range(2,6): url='https://edu.cnblogs.com/campus/gzcc/{}.html'.format(i) print(url)
执行结果如下图所示:
作业2.英文词频统计预处理:
- 下载一首英文的歌词或文章或小说,保存为utf8文件。
- 从文件读出字符串。
- 将所有大写转换为小写
- 将所有其他做分隔符(,.?!)替换为空格
- 分隔出一个一个的单词
- 并统计单词出现的次数。
实现代码如下:
def readFile(): f=open("uptown funk.txt"); text=f.read(); print(text); f.close(); return text; def splitText(): dict={} s="124.,," t=readFile().lower(); for i in s: t=t.replace(i,''); t = t.split(); #分割文本 for j in t: dict[j]=t.count(j); return dict; def sortDict(): d=sorted(splitText().items(),reverse=True,key=lambda d:d[1]); '元组排序,降序,按值排序' print("speech文本统计词频如下:\n"); for i in range(10): print(d[i][0],"--",d[i][1]); def main(): sortDict(); main();
执行效果如下图所示: