字符串操作、文件操作,英文词频统计预处理

作业的要求: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()
posted @ 2019-03-11 14:58  田仕钊  阅读(321)  评论(0编辑  收藏  举报