zoukankan      html  css  js  c++  java
  • 作业——02 字符串、文件操作,英文词频统计预处理

    作业的要求来自于:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/2646


    1.字符串操作:

    • 解析身份证号:生日、性别、出生地等。
    # -*- coding: utf-8 -*-
    """
    Spyder Editor
    
    This is a temporary script file.
    """
    
    ID=input('请输入十八位身份证号码: ')
    if len(ID)==18:
      print("你的身份证号码是 "+ID)
    else:
      print("错误的身份证号码")
     
    ID_add=ID[0:6]
    ID_birth=ID[6:14]
    ID_sex=ID[14:17]
    ID_check=ID[17]
     
    #ID_add是身份证中的区域代码,如果有一个行政区划代码字典,就可以用获取大致地址#
     
    year=ID_birth[0:4]
    moon=ID_birth[4:6]
    day=ID_birth[6:8]
    print("生日: "+year+'年'+moon+'月'+day+'日')
     
    if int(ID_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('
    ', i, '
    ')
            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='http://xybgs.gzcc.cn/html/xuxigg/{}.html'.format(i);
    print(url);

      运行结果如图所示:

    2.英文词频统计预处理:

    • 下载一首英文的歌词或文章或小说,保存为utf8文件。
    • 从文件读出字符串。
    • 将所有大写转换为小写
    • 将所有其他做分隔符(,.?!)替换为空格
    • 分隔出一个一个的单词
    • 并统计单词出现的次数。
    #文件操作
    def readFile():
        f=open("speech.txt");
        text=f.read();
        print(text);
        f.close();
        return text;
    
    #使用空格替换标点符号
    t=readFile().lower();
    article = t.replace(",","").replace(".","").replace(":","").replace(";","").replace("?","")
    
    
    #大写字母转换成小写字母
    exchange = article.lower();
    print(exchange)
    print('
    ')
    
    #生成单词列表
    list = exchange.split()
    print(list)
    
    #生成词频统计
    dic = {}
    for i in list:
        count = list.count(i)
        dic[i] = count
    print(dic)
    '''
    #排除特定单词
    word = {'and','the','with','in','by','its','for','of','an','to'}
    for i in word:
        del(dic[i])
    print(dic)
    '''
    #排序
    dic1= sorted(dic.items(),key=lambda d:d[1],reverse= True)
    print(dic1)
    print('
    ')
    
    #输出词频最大的前十位单词
    for i in range(10):
        print(dic1[i])
    

      结果如图所示:

  • 相关阅读:
    视差插件parallarx
    经典幻灯片插件Swiper
    经典全屏滚动插件fullPage.js
    Dialog插件artDialog
    html5 canvas 做的一个时钟效果
    CSS3 Transitions, Transforms和Animation使用简介与应用展示
    微软官方下载地址
    Windows 7 下配置IIS,并且局域网内可访问(转载)
    C# 使用HttpWebRequest 实现文件的上传
    小图标网站
  • 原文地址:https://www.cnblogs.com/linxiLYH/p/10469207.html
Copyright © 2011-2022 走看看