代码改变世界

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

2019-03-06 14:35  CMis180kg  阅读(228)  评论(0编辑  收藏  举报

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

作业1.字符串操作:

  • 解析身份证号:生日、性别、出生地等。

实现的代码如下:

add_num = {'440883':'吴川市','440802':'赤坎区','440803':'霞山区','440811':'麻章区','440804':'坡头区','440881':'廉江市'}
id = input('请输入身份证号码:')
birth_year = id[6:10]
birth_month = id[10:12]
birth_day = id[12:14]
sex = id[16]
if int(sex)%2 == 0:
    sex=''
else:
    sex=''
print('您输入的身份证号码是(湛江市):{}'.format(id))
print('出生地编码:{}\n出生时间:{}年{}月{}日\n性别:{}'.format(add_num[id[0:6]],birth_year,birth_month,birth_day,sex))

代码执行效果如下图所示:

  • 凯撒密码编码与解码

实现的代码如下:

word=input("请输入明文:");
n=input("请输入偏移值:");
s=ord("a");
e=ord("z");
choose=input("请输入您的选择,解码选择1,编码选择2:");
print("凯撒密码编码结果为:",end="")
for i in word:
    if s<=ord(i)<=e:
        if choose == "2":
            print(chr(s+(ord(i)-s+int(n))%26),end="");
        elif choose == "1":
            print("凯撒密码解码结果为:", end="")
            print(chr(s + (ord(i)-s-int(n)) % 26), end="");
        else:
            print("您的选择输入有误!")
    else:
        print(i,end="");

执行效果如下图所示:

  • 网址观察与批量生成

实现代码如下:

for i in range(2,6):
    url='https://edu.cnblogs.com/campus/gzcc/{}.html'.format(i)
    print(url)

执行结果如下图所示:

 

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

  • 下载一首英文的歌词或文章或小说,保存为utf8文件。
  • 从文件读出字符串。
  • 将所有大写转换为小写
  • 将所有其他做分隔符(,.?!)替换为空格
  • 分隔出一个一个的单词
  • 并统计单词出现的次数。

实现代码如下:

def readFile():
    f=open("uptown funk.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();

执行效果如下图所示: