python字符串操作、文件操作,英文词频统计预处理
1.字符串操作:
- 解析身份证号:生日、性别、出生地等。
- 凯撒密码编码与解码
- 网址观察与批量生成
解析身份证号:生日、性别、出生地等
def function3(): print('请输入身份证号') ID = input() if len(ID) != 18: print('请输入有效的身份证号码') else: print('身份证号码格式正确') birth = ID[6:14] print('您的生日是:', format(birth)) check = ID[14:17] if int(check) % 2 == 0: print('您的性别为:女') else: print('您的性别为:男') adress = ID[0:6] print('您的地址号码是:', format(adress), '可根据号码上网查')
结果截图:
凯撒密码编码与解码
def function1(): str_raw = input("请输入明文:") k = int(input("请输入位移值:")) str_change = str_raw.lower() str_list = list(str_change) str_list_encry = str_list i = 0 while i < len(str_list): if ord(str_list[i]) < 123-k: str_list_encry[i] = chr(ord(str_list[i]) + k) else: str_list_encry[i] = chr(ord(str_list[i]) + k - 26) i = i+1 print ("加密结果为:"+"".join(str_list_encry)) def function2(): str_raw = input("请输入密文:") k = int(input("请输入位移值:")) str_change = str_raw.lower() str_list = list(str_change) str_list_decry = str_list i = 0 while i < len(str_list): if ord(str_list[i]) >= 97+k: str_list_decry[i] = chr(ord(str_list[i]) - k) else: str_list_decry[i] = chr(ord(str_list[i]) + 26 - k) i = i+1 print ("解密结果为:"+"".join(str_list_decry))
结果截图:
网址观察与批量生成
def function4(): for i in range(1, 10): url = 'http://www.baidu.com/{}.html'.format(i) print(url)
结果截图:
2.英文词频统计预处理
- 下载一首英文的歌词或文章或小说。
- 将所有大写转换为小写
- 将所有其他做分隔符(,.?!)替换为空格
- 分隔出一个一个的单词
- 并统计单词出现的次数。
def function5(): str1="""I'm a big big girl ! In a big big world ! It's not a big big thing if you leave me. But I do do feel. That I too too will miss you much. Miss you much ! I can see the first leaf falling. It's all yellow and nice. It's so very cold outside. Like the way I'm feeling inside. I'm a big big girl ! In a big big world ! It's not a big big thing if you leave me. But I do do feel. That I too too will miss you much. Miss you much ! Outside it's now raining. And tears are falling from my eyes. Why did it have to happen ? Why did it all have to end ? I'm a big big girl ! In a big big world ! It's not a big big thing if you leave me. But I do do feel. That I too too will miss you much. Miss you much ! I have your arms around me ooooh like fire. But when I open my eyes. You're gone ! I'm a big big girl ! In a big big world ! It's not a big big thing if you leave me. But I do do feel. That I too too will miss you much. Miss you much ! I'm a big big girl ! In a big big world ! It's not a big big thing if you leave me. But I do feel that will miss you much ! Miss you so much !""" #字符 s1 = str1.lower() print(s1) # 去掉空格 str1 = str1.lstrip() print(str1) # 将歌词的每个单词分隔组成列表形式 print("将歌词的每个单词分隔组成列表形式:") strList = str1.split() print(strList) # 计算单词出现的次数 print("计算单词出现的次数:") strSet = set(strList) for word in strSet: print(word, strList.count(word))
结果截图:
3.文件操作
- 凯撒密码:从文件读入密函,进行加密或解密,保存到文件。
- 词频统计:下载一首英文的歌词或文章或小说,保存为utf8文件。从文件读入文本进行处理。
凯撒密码
def function1(): print("从文本读取到的密文是:") fo = open(r"..\bd\mypassword", "r",encoding="utf-8") str1 = fo.read() # 文本读取到的密码 print(str1) fo.close() str_raw = str1 k = int(input("请输入位移值:")) str_change = str_raw.lower() str_list = list(str_change) str_list_encry = str_list i = 0 while i < len(str_list): if ord(str_list[i]) < 123 - k: str_list_encry[i] = chr(ord(str_list[i]) + k) else: str_list_encry[i] = chr(ord(str_list[i]) + k - 26) i = i + 1 print("加密结果为:" + "".join(str_list_encry)) print("写入文本中,请稍后。。。") fo = open(r"..\bd\mypassword", "w") fo.write(str_list_encry) fo.close() def function2(): str_raw = input("请输入密文:") k = int(input("请输入位移值:")) str_change = str_raw.lower() str_list = list(str_change) str_list_decry = str_list i = 0 while i < len(str_list): if ord(str_list[i]) >= 97 + k: str_list_decry[i] = chr(ord(str_list[i]) - k) else: str_list_decry[i] = chr(ord(str_list[i]) + 26 - k) i = i + 1 print("解密结果为:" + "".join(str_list_decry)) while True: print (u"1. 凯撒加密") print (u"2. 凯撒解密") choice = input("请选择:") if choice == "1": function1() elif choice == "2": function2() else: print (u"您的输入有误!")
词频统计
import os path =os.getcwd() fo=open(r"..\python1\what","r") str1=fo.read() #print(fo.readline()) fo.close() s1=str1.lower() #print(s1) #去掉空格 str1=str1.lstrip() #print(str1) #将歌词的每个单词分隔组成列表形式 print("将歌词的每个单词分隔组成列表形式:") strList=str1.split() print(strList) #计算单词出现的次数 print("计算单词出现的次数:") strSet=set(strList) for word in strSet: print(word,strList.count(word))
代码什么的是青春最美的情书