字符串操作、文件操作,英文词频统计预处理
作业的要求:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE1/homework/2684
1.字符串操作:
- 解析身份证号:生日、性别、出生地等。
-
idCard=input("输入身份证号码:") local=idCard[0:2] bronYear=idCard[6:10] bronMonth=idCard[10:12] bronDay=idCard[12:14] sex=idCard[16:17] address={'11':'北京市','12':'天津市','13':'河北省','14':'山西省','15':'内蒙古自治区','21':'辽宁省','22':'吉林省','23':'黑龙江省','31':'上海市','32':'江苏省','33':'浙江省','34':'安徽省','35':'福建省','36':'江西省','37':'山东省','41':'河南省','42':'湖北省','43':'湖南省','44':'广东省','45':'广西壮族自治区','46':'海南省','50':'重庆市','51':'四川省','52':'贵州省','53':'云南省','54':'西藏自治区','61':'陕西省','62':'甘肃省','63':'青海省','64':'宁夏回族自治区','65':'新疆维吾尔自治区','71':'台湾省','81':'香港特别行政区','82':'澳门特别行政区'} print("地区:"+address.get(local),"生日:{}年{}月{}日".format(bronYear,bronMonth,bronDay)) if(int(sex)%2==0): print("性别:女") else: print("性别:男")
- 凯撒密码编码与解码
-
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() #获得用户输入的明文 plaintext = input() ciphertext = encryption(plaintext, 3) print(ciphertext)
- 网址观察与批量生成
for i in range(1,6): url='http://news.gzcc.cn/html/xiaoyuanxinwen/{}.html'.format(i) print(url)
2.英文词频统计预处理
- 下载一首英文的歌词或文章或小说。
- 将所有大写转换为小写
- 将所有其他做分隔符(,.?!)替换为空格
- 分隔出一个一个的单词
- 并统计单词出现的次数。
sep=',. ? !' fo = open(r'1.txt','r',encoding='utf8') text = fo.read() text = text.lower() for ch in sep: text=text.replace(ch,'') print(text.split()) f=open('1.txt','r',encoding='utf8') text = f.read() list = text.split(" ") formatList=[] for id in list: if id not in formatList: formatList.append(id) for x in formatList: print(x,list.count(x))
3.文件操作
- 同一目录、绝对路径、相对路径
- 凯撒密码:从文件读入密函,进行加密或解密,保存到文件。
- 词频统计:下载一首英文的歌词或文章或小说,保存为utf8文件。从文件读入文本进行处理。
f = open('1.txt', 'r', encoding='utf8') f = f.read() Code1 = '' for i in f: Code1 = Code1+chr(ord(i)+3) Code2 = open('2.txt', 'a', encoding='utf8') Code2 = Code2.write(Code1)
4.函数定义
- 加密函数
def JiaMi(dode) : code1 = '' for i in code : i = i + chr(ord(i)+3) return i
- 解密函数
-
def JieMi(code) : code1 = '' for i in code : i = i + chr(ord(i)-3) return i
- 读文本函数
-
def read(article) : file = open(article, 'r',encoding = 'utf8') return file.read()