博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
字符串、文件操作,英文词频统计预处理
阅读量:4553 次
发布时间:2019-06-08

本文共 3031 字,大约阅读时间需要 10 分钟。

该作业要求来于:

一、作业要求

1.字符串操作:

  • 解析身份证号:生日、性别、出生地等。
  • 凯撒密码编码与解码
  • 网址观察与批量生成

2.英文词频统计预处理

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

 

二、字符串操作

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

   代码如下:

1 class GetInformation(object): 2  3      def __init__(self,id): 4          self.id = id 5          self.birth_year = int(self.id[6:10]) 6          self.birth_month = int(self.id[10:12]) 7          self.birth_day = int(self.id[12:14]) 8  9      def get_birthday(self):10          """通过身份证号获取出生日期"""11          birthday = "{0}-{1}-{2}".format(self.birth_year, self.birth_month, self.birth_day)12          return birthday13 14      def get_sex(self):15          """男生:1 女生:2"""16          num = int(self.id[16:17])17          if num % 2 == 0:18              return 219          else:20              return 121 22      def get_age(self):23          """通过身份证号获取年龄"""24          now = (datetime.datetime.now() + datetime.timedelta(days=1))25          year = now.year26          month = now.month27          day = now.day28 29          if year == self.birth_year:30              return 031          else:32              if self.birth_month > month or (self.birth_month == month and self.birth_day > day):33                  return year - self.birth_year - 134              else:35                  return year - self.birth_year36 37 id = '440823199807195613'38 birthday = GetInformation(id).get_birthday() # 1998-07-1939 age = GetInformation(id).get_age() # 2

2.凯撒密码编码与解码

   代码如下:

1 def encryption(): 2     str_raw = input("请输入明文:") 3     k = int(input("请输入位移值:")) 4     str_change = str_raw.lower() 5     str_list = list(str_change) 6     str_list_encry = str_list 7     i = 0 8     while i < len(str_list): 9         if ord(str_list[i]) < 123-k:10             str_list_encry[i] = chr(ord(str_list[i]) + k)11         else:12              str_list_encry[i] = chr(ord(str_list[i]) + k - 26)13              i = i+114     print ("加密结果为:"+"".join(str_list_encry))15 def decryption():16     str_raw = input("请输入密文:")17     k = int(input("请输入位移值:"))18     str_change = str_raw.lower()19     str_list = list(str_change)20     str_list_decry = str_list21     i = 022     while i < len(str_list):23         if ord(str_list[i]) >= 97+k: str_list_decry[i] = chr(ord(str_list[i]) - k)24         else: str_list_decry[i] = chr(ord(str_list[i]) + 26 - k)25         i = i+126     print ("解密结果为:"+"".join(str_list_decry))27 while True:28     print (u"1. 加密")29     print(u"2. 解密")30     choice = input("请选择:")31     if choice == "1": encryption()32     elif choice == "2": decryption()33     else: print (u"您的输入有误!")

3.网址观察与批量生成

   代码如下:

for i in range(2,6):    url='http://news.gzcc.cn/html/xiaoyuanxinwen/{}.html'.format(i)    print(url)

二.英文词频统计预处理

   代码如下:

f = open(r'D:\pyhomework\bigbigword.txt',encoding='utf8')

sep = ',./<>?`-_=+'
text = f.read()
print(text)
f.close()
text = text.lower()
for i in sep:
text = text.replace(i,' ')

 

print(text.split())

print(text.count('big'),text.count('world'))

 

转载于:https://www.cnblogs.com/666hll1212123/p/10480317.html

你可能感兴趣的文章
M51文件注释
查看>>
iOS最牛逼得自定义View方式支持storyboard显示
查看>>
yum的一些基本操作
查看>>
javaweb一周总结(菜鸟)
查看>>
关于临界资源访问互斥量的死锁问题
查看>>
《东邪西毒》经典台词
查看>>
验证码生成(转)
查看>>
大型架构.net平台篇(WEB层均衡负载nginx)
查看>>
Linux常用命令(转http://www.weixuehao.com/archives/25)
查看>>
LDA模型应用实践-希拉里邮件主题分类
查看>>
读书笔记(二) ——《恶意》你善良吗?
查看>>
Android测试环境搭建
查看>>
storm进程正常运行一段时间shut down,运维方式
查看>>
NEFU 1112 粉刷栅栏算法
查看>>
把自己的项目上传到svn上面
查看>>
关于垂直居中
查看>>
统领全局的使用asp.net
查看>>
python 获取本地ip
查看>>
Ehlib 学习
查看>>
django-view层
查看>>