字符串、文件操作和英文词频统计预处理
作业要求来自:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/2646
1.字符串操作:
解析身份证号:生日、性别、出生地等。
number=input("请输入身份证号:") Y=number[6:10] M=number[10:12] D=number[12:14] sex=number[14:17] j=0 if len(number) != 18: print('你输入得身份证号码有误 ') else: num = {'44': '广东省'} if int(sex) % 2 == 0: xingbie='女' else: xingbie='男' print('你出生在{},出生时间为{}年{}月{}日,性别为{}。'.format(num[number[0:2]],Y,M,D,xingbie))
运行结果如下:
凯撒密码编码与解码
def change(c,i): c = c.lower() num = ord(c) if num >= 97 and num <= 122: num = 97 + ((num - 97) + i) % 26 return chr(num) def kaisa_jiami(string,i): string_new = '' for s in string: string_new += change(s,i) print(string_new) return string_new def kaisa_jiemi(string): for i in range(25): print('\n', i, '\n') i += 1 kaisa_jiami(string,i) def main(): print('请选择操作:') print('1:加密') print('2:解密') choice = input() if choice == '1': string = input('请输入需要加密的字符串:') num = int(input('请输入需要偏移的位数:')) kaisa_jiami(string,num) elif choice == '2': string = input('请输入需要解密的字符串:') kaisa_jiemi(string) else: print('输入错误,请重试!') main() if __name__ == '__main__': main()
运行结果如下:
网址观察与批量生成
for i in range(2,6): url='https://v.qq.com/{}.html'.format(i) print(url)
运行结果如下:
2.英文词频统计预处理
- 下载一首英文的歌词或文章或小说,保存为utf8文件。
- 从文件读出字符串。
- 将所有大写转换为小写
- 将所有其他做分隔符(,.?!)替换为空格
- 分隔出一个一个的单词
- 并统计单词出现的次数。
代码
def readFile(): f=open("say.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();
运行截图: