5.1.3 案例精选

  5-1 编写函数实现字符串加密和解密,循环使用指定秘钥,采用简单的异或算法。

 1 def crypt(source,key):
 2     from itertools import cycle
 3     result = ‘‘
 4     temp=cycle(key)
 5
 6     for ch in source:
 7         result = result + chr( ord(ch)^ord(next(temp)) )
 8
 9     return result
10
11 source = ‘Shandong Institute of Business and Technology‘
12 key = ‘Dong Fuguo‘
13
14 print(‘Before Encrypted:‘,source)
15 encrypted = crypt(source,key)
16 print(‘After Encrypted:‘,encrypted)
17 decrypted=crypt(encrypted,key)
18 print(‘After Decrypted:‘,decrypted)
19
20 #Before Encrypted: Shandong Institute of Business and Technology
21 #After Encrypted:     D) U&*T3U "O,S/d  + Y
22 #After Decrypted: Shandong Institute of Business and Technology

  5-2 编写程序,生成大量随机信息

    本例代码演示了如何使用Python标准库random来生成随机数据,这在需要获取大量数据来测试或演示软件的时候非常有用,不仅能真实展示软件功能或算法,还可以避免泄露真实数据或者引起不必要的争议。

  1 import random
  2 import string
  3 import codecs
  4
  5 #常用汉字 Unicode 编码表(部分),完整列表详见配套源代码
  6 stringBase = ‘\u7684\u4e00\u4e86\u662f\u6211\u4e0d\u5728\u4eba‘
  7
  8 #转换为汉字
  9 stringBase = ‘‘.join(stringBase.split(‘\\u‘))
 10 #print(stringBase)  #的一了是我不在人
 11
 12 #获取邮箱
 13 def getEmail():
 14
 15     #常见域名后缀,可以随意扩展该列表
 16     suffix = [‘.com‘,‘.org‘,‘.net‘,‘.cn‘]
 17     characters = string.ascii_letters + string.digits+‘_‘
 18
 19     #获取邮箱用户名
 20     username = ‘‘.join((random.choice(characters) for i in range(random.randint(6,12))))
 21
 22     #获取邮箱域名
 23     domain = ‘‘.join((random.choice(characters) for i in range(random.randint(3,6))))
 24
 25     return username + ‘@‘ + domain + random.choice(suffix)
 26
 27 #获取手机号码
 28 def getTelNo():
 29     return ‘‘.join((str(random.randint(0,9)) for i in range(11)))
 30
 31 #获取用户名或地址
 32 def getNameOrAddress(flag):
 33     ‘‘‘flag=1 表示返回随机姓名,flag = 0表示返回随机地址‘‘‘
 34     result = ‘‘
 35     if flag == 1:
 36         #大部分中国人的姓名为2-4个汉字
 37         rangestart,rangeend = 2 , 5
 38     elif flag ==0:
 39         #假设地址在10-31个汉字之间
 40         rangestart,rangeend = 10,31
 41     else:
 42         print(‘flag must be 1 or 0‘)
 43         return ‘‘
 44
 45     for i in range(rangestart,rangeend):
 46         result += random.choice(stringBase)
 47
 48     return result
 49
 50 def getSex():
 51     return random.choice((‘男‘,‘女‘))
 52
 53 def getAge():
 54     return str(random.randint(18,100))
 55
 56 def main(filename):
 57     with codecs.open(filename,‘w‘,‘utf-8‘) as fp:
 58         fp.write(‘Name,-Sex,Age,---TelNo--,-------------------Address----------------,-----Email----- \n‘)
 59
 60         #随机生成200个人的信息
 61         for i in range(10):
 62             name = getNameOrAddress(1)
 63             sex = getSex()
 64             age = getAge()
 65             tel = getTelNo()
 66             address = getNameOrAddress(0)
 67             email = getEmail()
 68             line = ‘,‘.join([name,sex,age,tel,address,email]) + ‘\n‘
 69             fp.write(line)
 70
 71
 72 def output(filename):
 73     with codecs.open(filename,‘r‘,‘utf-8‘) as fp:
 74         while True:
 75             line = fp.readline()
 76             if not line:
 77                 return
 78             line = line.split()
 79             for i in line:
 80                 print(i,end=‘,‘)
 81             print()
 82
 83 if __name__ == ‘__main__‘:
 84     filename = ‘infomation.txt‘
 85     main(filename)
 86     output(filename)
 87
 88 ‘‘‘
 89 Name,-Sex,Age,---TelNo--,-------------------Address----------------,-----Email-----,
 90 是的在,男,35,40020447105,一我了了我是是人了的了我在我的不了的人了我,[email protected],
 91 一是我,女,44,28056977003,了我人不在的人不不是的在不人我是我不人一的,[email protected],
 92 了在在,女,20,08361670393,人一了了是是在一是的人一在不在是不的了了是,[email protected],
 93 一一是,女,68,99960031767,了的一我我人的在我的一一不了是了了我在人不,[email protected],
 94 一人了,男,55,33382346683,人的我在不人了了是我是是了了在我人在我一我,[email protected],
 95 的了不,男,95,90126113931,一我人了的不人我在了的了了人人是不了的一的,[email protected],
 96 一是是,女,26,78260102051,的人人我了是的的了是了我人不的一不人我是我,[email protected],
 97 的的人,男,30,73940532426,的一在人是了的不了是不的在在人不人是在我了,[email protected],
 98 不在的,女,61,10389727006,了人我了的了的不了在一一我是是我了人在是在,[email protected],
 99 是不了,男,90,59993303692,人是了在了了一人人是我是是的我一我了了是一,[email protected],
100 ‘‘‘

  拓展知识:Python扩展库jieba和snownlp很好地支持了中文分词,可以使用pip命令进行安装。在自然语言处理领域经常需要对文字进行分词,分词的准确度直接影响了后续文本处理和挖掘算法的最终效果。

  拓展知识:Python扩展库pypinyin支持汉字到拼音的转换,并且可以和分词扩展库配合使用。

原文地址:https://www.cnblogs.com/avention/p/8729590.html

时间: 2024-11-09 02:57:41

5.1.3 案例精选的相关文章

如何打造超火爆小程序 酷客多优秀案例精选推荐

2018年,大批企业纷纷做起微信小程序.面对小程序掀起的惊涛骇浪,酷客多扶摇直上,席卷国内外小程序市场.为众多企业精心打造营销利器,解决了大量传统企业经营上的困难和问题. 如今,作为国内首屈一指的微信小程序技术服务商,酷客多已拥有数十万的客户商家.其中高品质案例数不胜数,今天为大家分享一批优秀模板案例,供大家参考评鉴. 原文地址:http://blog.51cto.com/smartlife/2149621

6.4.2 案例精选

1 将当前目录的所有扩展名为html的文件重命名为扩展名为htm的文件. 1 file_list = os.listdir('.') #获取当前目录下的文件列表 2 for filename in file_list: 3 pos = filename.rindex('.') 4 if filename[pos+1:] == 'html': 5 newname=filename[:pos + 1] + 'htm' 6 os.rename(filename,newname) 7 print(fil

二值图像分析案例精选

说起来,我还是挺惭愧的,去年四月份连续在51CTO博客发表了一波技术文章,后来因为自己太忙就慢慢忘记更新拉,前两天一看访问量居然突破100+万拉,感谢各位的厚爱与支持,更觉得51CTO博客改版之后真的是很棒!所以又来更新了! 最近一直有人向我提问很多二值图像分析相关的问题,特别选择了两个典型的轮廓分析问题.进行分析与编码实现与演示,废话不多说,先看第一个问题. 问题一 问题描述如下 想找到工具盘中间缺少的几个点,统计出可以看到的工件数目 仔细分析图像发现,中间都毫无另外的有个白色很亮的圆圈,这个

C++游戏开发需要阅读的书籍

如果要自学游戏程序开发的话,可以看看下面的,呵呵. 游戏开发资料(PDF书都是中文版的,非英文,很多是本人自己扫描制作,从未网上发布过,所以独家啦):  1.Gamebryo 2.2游戏引擎(盛大.腾讯等公司制作网络游戏常用)+Gamebryo v2.2.1说明文档 2.游戏PDF书及其代码:  3D游戏编程.3D游戏编程大师技巧.Direct3D游戏编程入门教程第2版.DirectX角色扮演游戏编程  DirectX特效游戏程序设计.MFC windows程序设计第2版.MFC深入浅出.VC+

网络编程学习小结

几种网络编程方式: ISAPI.CGI.WinInet.Winsock 它们之间的差别: 1)  ISAPI主要是开发基于浏览器client与server端程序.效率比CGI方式高,并且也扩展了CGI没有的一些功能.(基于TCP/IP模型中的应用层) 2)  CGI主要是开发基于浏览器client与server端程序.(基于TCP/IP模型中的应用层) 3)  WinInet主要是开发client程序.(基于TCP/IP模型中的应用层) 4)  Winsock主要是基于socket来开发clie

即时通讯软件开发 几种网络编程方式

即时通讯软件开发 几种网络编程方式: ISAPI.CGI.WinInet.Winsock 它们之间的区别: 1)ISAPI主要是开发基于浏览器客户端与服务器端程序.效率比CGI方式高,而且也扩展了CGI没有的一些功能.(基于TCP/IP模型中的应用层) 2) CGI主要是开发基于浏览器客户端与服务器端程序.(基于TCP/IP模型中的应用层) 3) WinInet主要是开发客户端程序.(基于TCP/IP模型中的应用层) 4) Winsock主要是基于socket来开发客户端与服务器端程序.(基于T

软件需求说明书

1引言 1.1编写目的 1.2背景 1.3定义 1.4参考资料 2任务概述 2.1目标 2.2用户的特点 2.3假定和约束 3需求规定 3.1对功能的规定 3.2对性能的规定 3.2.1精度 3.2.2时间特性要求 3.2.3灵活性 3.3输人输出要求 3.4数据管理能力要求 3.5故障处理要求 3.6其他专门要求 4运行环境规定 4.1设备 4.2支持软件 4.3接口 4.4控制 软件需求说明书 1引言 1.1编写目的 (1)为了更好的了解软件的需求,该文档可供用户浏览,了解海法内容和各部分模

GuidelinesOfGameDevelopment游戏开发新手指引

# GuidelinesOfGameDevelopment Just give out some experience or directions on game development to green hands.分享经验或路线给新手们 正文:最新指引链接 游戏类型:手游.端游.页游.家用游戏(电视) 游戏相关职位: 客户端: 游戏逻辑(常见功能和特色功能开发),将用户体验做到极致,未来方向应该是主程.游戏制作人和游戏玩法创新.C#或Lua.js.我想说,让Lua滚出游戏界,算了,还是我退出

2012Android开发热门资料(110个)

下载中心完整附件下载地址:http://down.51cto.com/data/412494 附件内容部分预览: 专题推荐: Android控:平板电脑HD精品游戏软件合集(共32个) http://down.51cto.com/zt/413 Android游戏引擎源码下载(7个) http://down.51cto.com/zt/412 Android应用实战:淘宝网手机客户端全程实录(10集全) http://down.51cto.com/zt/390 多款Android播放器源码集锦(共1