ImageVerifierCode 换一换
格式:PPT , 页数:81 ,大小:2.13MB ,
资源ID:797113      下载积分:11 金币
验证码下载
登录下载
邮箱/手机:
验证码: 获取验证码
温馨提示:
支付成功后,系统会自动生成账号(用户名为邮箱或者手机号,密码是验证码),方便下次登录下载和查询订单;
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/797113.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  
声明  |  会员权益     获赠5币     写作写作

1、填表:    下载求助     索取发票    退款申请
2、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
3、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
4、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
5、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【胜****】。
6、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
7、本文档遇到问题,请及时私信或留言给本站上传会员【胜****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。

注意事项

本文(Python程序开发教程.ppt)为本站上传会员【胜****】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4008-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

Python程序开发教程.ppt

1、Python程序开发程序开发信息管理部信息管理部 王辉王辉0103PythonPython程序开程序开发Python背景介绍02Python特色课程导航课程导航起源作者作者:Guido Van Rossum(GvR)http:/www.python.org/guido/名字的读法“仁慈的终身独裁者”BenevolentDictatorForLife他持续关注Python的开发进程,指导支持Python开源社区的活动,并在必要的时刻做出决定。目前在Google工作得名“1989年12月,我在寻找一门“课余”编程项目来打发圣诞节前后的时间。我的办公室会关门,但我有一台家用电脑,而且没有太多其它东西

2、。我决定为当时我正构思的一个新的脚本语言写一个解释器,它是ABC语言的后代,对UNIX/C程序员会有吸引力。作为一个略微有些无关想法的人,和一个蒙提派森(MontyPython)的飞行马戏团的狂热爱好者,我选择了Python作为项目的标题。”每个人都会Computer Programming for Everybody1999年,Guido向DARPA阐述Python语言的特性:简单、直观、强大开源,以便任何人都可以为它做贡献代码像纯英语那样容易理解适用于短期开发的日常任务这些想法中的一些已经成为现实。Python已经成为一门流行的编程语言,尤其是在互联网环境下。Python启示录启示录Pyt

3、hon崇尚优美、清晰、简单,是一个优秀并广泛使用的语言。TIOBE语言排行第八,Google的第三大开发语言,Dropbox的基础语言,豆瓣的服务器语言。0103PythonPython程序开程序开发Python背景介绍02Python特色课程导航课程导航特性交互式命令行交互式命令行(Interactive console)不只是脚本不只是脚本强大易用的标准库强大易用的标准库胶水语言胶水语言(glue language)收放自如收放自如(scalability)不要括号不要括号vs Perlvs Ruby交互式命令行(Interactiveconsole)Python可以单步直译运行。运行Py

4、thon解释器进入交互式命令行的环境,你可以在提示符号旁输入代码,按Enter键输出结果:print(Hello,Python!)Hello,Python!有点像Shell脚本的执行方式。不只是脚本原因是“脚本语言”泛指仅作简单编程任务的语言,如Linuxshellscript、JavaScript等,它们只能处理简单的任务而Python是面向对象编程(OOP)的,支持异常处理和类型检查Python的支持者较喜欢称它为一种高阶动态编程语言强大易用的标准库核心库不超过10MbHtml、Xml解析:BeautifulSoup,Expat字符串处理:字典、数组切片、正则表达式re单元测试:PyUni

5、t代码版本控制:PySVN网络访问:urllib2图形模块:Tkinter、PyTCL、WxPython串行化、多线程等扩展标准库十分容易扩展标准库十分容易胶水语言(gluelanguage)Python经常用作将不同语言编写的程序“粘”在一起的胶水语言。Google内部的很多项目使用C+编写性能要求极高的部分,然后用Python调用相应的模块。C/C+:Boost.Python使得Python和C+的类库能互相调用(.pyc)Java:Jython是用Java实现的Python,可同时使用二者的类库.NET:IronPython是Python在.NET平台上的版本。收放自如(scalabil

6、ity)Python内建的数据结构(variable,list和dict)以及对多线程分布式操作的支持,使得程序可以用相同的代码处理不同规模的数据,以及并发的用户需求。Google App Enginehttp:/ Wall Perl语言之父,语言学家www.wall.org/larry/两届国际C语言混乱代码大赛(IOCCC)的冠军第一届自由软件奖得主程序员的三大美德懒惰:懒惰:能让人尽量减少总能量支出的美德。它使你写出节省脑力、可以重用的代码;也督促你为程序写注释和文档,那样你就不用回答各种问题。所以它是程序员的第一大美德。所以有了这本书。参见下两条。不耐烦:不耐烦:当电脑想偷懒时你爆发的

7、怒气.它使你写的代码能主动预测、而非被动满足用户需求,至少装作是这样。所以它是程序员的第二大美德。参见懒惰和傲慢。傲慢:傲慢:自傲到人神共愤的程度,也是一种品质,能使你编写(维护)的程序让人无可指摘。所以它是程序员的第三大美德.参见前两条。观点Perl之父LarryWall:“做一件事有很多种方法”Python资深开发者TimPeters:“做一件事,应该有一种最直观的方法,而且最好只有一种。”Python之父GuidoVanRossum:“做一件事情只有一种方法”vs.RubyRuby:比Python更年轻的动态语言完全面向对象支持正则表达式整合了多种语言的优势RubyonRails网站快速

8、开发工具松本行弘松本行弘(“Matz”)“不要重复自己”国籍语言语言作者作者作者国籍作者国籍编程风格编程风格PerlLarryWall美国随性自由PythonGuidovanRossum荷兰优雅统一Ruby松本行弘(“Matz”)日本兼容并包用途脚本程序大型程序的原型开发科学计算网络应用计算机图形编程知名的Python应用Zope:一个应用程序服务器,具有内容管理、团队开发、XML、面向对象、SOAP接口等一系先进特性,开源。Gadfly:http:/ Rose:Lady in the Water:2.5,Snakes on a Plane:3.5,Just My Luck:3.0,Super

9、man Returns:3.5,You,Me and Dupree:2.5,The Night Listener:3.0,Gene Seymour:Lady in the Water:3.0,Snakes on a Plane:3.5,Just My Luck:1.5,Superman Returns:5.0,The Night Listener:3.0,You,Me and Dupree:3.5Toby:Snakes on a Plane:4.5,You,Me and Dupree:1.0,Superman Returns:4.0搜集偏好我们可以使用交互控制台对字典的数据进行查询和修改:fr

10、om recommendations import critics criticsLisa RoseLady in the Water2.5 criticsTobySnakes on a Plane=4.5 criticsTobySnakesonaPlane:4.5,You,MeandDupree:1.0寻找相似的用户收集了人们的偏好数据后,我们需要方法来计算某两个人电影品味的相似度。有两种基本的方法可以实现这个目的:欧几里得距离欧几里得距离皮尔逊相关度皮尔逊相关度欧几里得距离评价以二维空间中的情形为例:设坐标轴为人们都评价过的两部电影,然后将参与评价的人根据他们对这两部电影的评分绘制到图上,

11、并考察他们彼此间的距离,如图:图中的点距离越近,表明两个人的偏好越接近。推广到多维向量空间,欧几里得法可表示为:计算每一轴上两点的差值求平方,再将各轴相加,最后取平方根。欧几里得距离评价如计算Toby和LaSalle的距离:from math import sqrtsqrt(pow(5-4,2)+pow(4-1,2)3.1622776601683795为了给偏好接近的情况给出较大的值,可取该值的倒数,并+1避免除数为0:1/(1+sqrt(pow(5-4,2)+pow(4-1,2)0.2402530733520421欧几里得距离评价使用这种方法构造出如下相似度函数:def sim_distan

12、ce(prefs,person1,person2):#得到共同的电影得到共同的电影si=for item in prefsperson1:if item in prefsperson2:siitem=1#如果没有共同的电影则返回如果没有共同的电影则返回0if len(si)=0:return 0#计算欧几里得距离,返回相似度计算欧几里得距离,返回相似度 Sum_of_squares=sum(pow(prefsperson1item-prefsperson2item,2)for item in prefsperson1 if item in prefsperson2)return 1/(1+su

13、m_of_squares)皮尔逊相关度皮尔逊相关系数是一种更复杂的方法,它通过计算两组数据与某一直线拟合的程度来判断它们的相似程度。该方法有助于克服所谓的“夸大评价”现象对结果的影响。右图中,虽然Jack对电影的评价比Lisa更为极端(更容易给出高分和低分),但这个坐标系中的点都相当靠近拟合曲线(图中虚线),可以说两人的品味较为相近。皮尔逊相关度使用如下函数计算皮尔逊相关度,该函数返回一个-1到1的值:def sim_pearson(prefs,p1,p2):#得到共同评价的电影得到共同评价的电影si=for item in prefsp1:if item in prefsp2:siitem=

14、1#如果没有共同评价的电影,返回如果没有共同评价的电影,返回0if len(si)=0:return 0#将两人的偏好相加将两人的偏好相加sum1=sum(prefsp1it for it in si)sum2=sum(prefsp2it for it in si)皮尔逊相关度#计算平方和计算平方和sum1Sq=sum(pow(prefsp1it,2)for it in si)sum2Sq=sum(pow(prefsp2it,2)for it in si)#计算对应项的乘积和计算对应项的乘积和pSum=sum(prefsp1it*prefsp2it for it in si)#计算皮尔逊相关度

15、计算皮尔逊相关度num=pSum-(sum1*sum2/n)den=sqrt(sum1Sq-pow(sum1,2)/n)*(sum2Sq-pow(sum2,2)/n)if den=0:return 0r=num/denreturn r皮尔逊相关度在交互式控制台中使用上述两种计算方法:reload(recommendations)recommendations.sim_distance(recommendations.critics,.Lisa Rose,Gene Seymour)0.148148148148recommendations.sim_pearson(recommendations.

16、critics,.Lisa Rose,Gene Seymour)0.396059017191给评论者打分有了对两个人进行比较的函数,下面就可以找出与某人品味最接近的人了,进而,可以根据这些人的喜好来推荐电影。def topMatches(prefs,person,n=5,similarity=sim_pearson):scores=(similarity(prefs,person,other),other)for other in prefs if other!=person#对对list排序,相似度最高的人排在最前排序,相似度最高的人排在最前scores.sort()scores.rever

17、se()return scores0:n在交互控制台中使用该函数:recommendations.topMatches(recommendations.critics,Toby,n=3)(0.99124070716192991,LisaRose),(0.92447345164190486,MickLaSalle),(0.89340514744156474,ClaudiaPuig)推荐电影我们固然可以选择只看那些和我们品味相近的人推荐的电影,但这样做太武断,也许某部电影大家普遍都觉得不错,而恰好与我们最相近的那个人没有看过。所以,我们需要一种对推荐人进行加权的推荐,如下表:给Toby的电影推荐表

18、推荐电影S.X打头的列是经过加权的电影评分。下面的代码给出了上述过程的具体实现:def getRecommendations(prefs,person,similarity=sim_pearson):totals=simSums=for other in prefs:#不和自己比不和自己比if other=person:continuesim=similarity(prefs,person,other)#忽略小于等于忽略小于等于0的评分的评分if simreload(recommendations)recommendations.getRecommendations(recommendatio

19、ns.critics,Toby)(3.3477895267131013,TheNightListener),(2.8325499182641614,LadyintheWater),(2.5309807037655645,JustMyLuck)recommendations.getRecommendations(recommendations.critics,Toby,.similarity=recommendations.sim_distance)(3.5002478401415877,TheNightListener),(2.7561242939959363,LadyintheWater),

20、(2.4619884860743739,JustMyLuck)结果显示,人们为Toby推荐了三部电影,而且用两种相似度地算方法得到的列表是一样的。总结到此为止,我们建立了一个完整的推荐系统,它适用于任何的商品推荐以及基于相似度的数据关系挖掘。而这一切在Python中,仅仅是建立一个涉及人、商品以及评价值的字典,然后根据某些相似度算法得出的人与人的相似度,就可以进行推荐了。0103PythonPython程序开程序开发Python背景介绍02Python特色课程导航课程导航家族旅行问题的最优化算法问题描述:Glass一家住在美国不同的地方。他们希望在纽约相聚,在同一天从各地坐飞机到纽约,几天后再

21、一起离开。每天有许多往返的航班,起飞时间、价格以及飞行时间都不相同。现在需要找到一种好的日程安排,使得大家的旅行花费尽可能少、等待亲友的时间尽可能短、乘坐飞机的时间尽可能短。建立文件optimization.py,加入如下代码:people=(Seymour,BOS),(Franny,DAL),(Zooey,CAK),(Walt,MIA),(Buddy,ORD),(Les,OMA)#目的地:纽约目的地:纽约LaGuardia机场机场destination=LGA问题分析首先要找到一种通用的表示日程安排方案的方法。然后,为了描述某种方案的好坏,需要定义某种函数。在优化问题中,这个函数叫做代价函数

22、(costfunciton)。一个方案越好,它的代价函数值越小。这样找最优方案的问题转化为找代价函数值最小的方案的问题。最后设法找出具有最小代价函数值的方案,完成优化过程。导入数据从网址http:/ 可以下载到航班数据,格式如下:LGA,MIA,20:27,23:42,169MIA,LGA,19:53,22:21,173LGA,BOS,6:39,8:09,86分别是起点、终点、起飞时间、到达时间和机票价格。将数据载入到以起止点为键、以航班详情为值的字典中:flights=for line in file(schedule.txt):origin,dest,depart,arrive,price

23、=line.strip().split(,)flights.setdefault(origin,dest),)#将航班详情加入到航班字典的值中将航班详情加入到航班字典的值中flights(origin,dest).append(depart,arrive,int(price)描述方案如何描述各种方案呢?一个通用的方法是使用数字列表,它使得之后描述的优化算法并不依赖于具体的问题。本例中,用数字表示某人乘坐当天的第几趟航班,0代表第一趟,1代表第二趟,以此类推。由于每个人都要选择往和返两趟班机,所以列表的总长是人数的两倍。例如:1,4,3,2,7,3,6,3,2,4,5,3该方案表示Seymour

24、坐第2趟航班去纽约,坐第5趟航班回波士顿Franny坐第4趟航班去纽约,坐第3趟回达拉斯。代价函数代价函数的选取是优化算法的重要环节。本例中,可以综合考虑如下因素来构造代价函数:价格:价格:所有航班的总票价旅行时间旅行时间:所有人在飞机上度过的总时间等待时间等待时间:在机场等待其他成员到达的总时间出发时间出发时间:早晨太早起飞的航班有额外的代价,因为旅行者睡眠不足汽车租用时间:汽车租用时间:如果集体租车,那么他们最好在某个时间前将车归还,否则会多付租金。代价函数限于篇幅,就不给出代价函数的全部代码了,使用方法如下:reload(optimization)optimization.schedul

25、ecost(s)5285有了代价函数,下面就是找到具有最小函数值的方案了。在这个例子中有16个航班、每个航班都有9种可能,所有的可能数为916,约3000亿,所以穷举是不现实的。下面使用两种方法实现优化:随机优化随机优化爬山法爬山法随机优化随机生成一些方案,找出其中最好的方案。随机生成一些方案,找出其中最好的方案。def randomoptimize(domain,costf):best=999999999bestr=Nonefor i in range(1000):#随机生成一个方案随机生成一个方案r=random.randint(domaini0,domaini1)for i in ran

26、ge(len(domain)#计算代价计算代价cost=costf(r)#与当前最优方案的代价比较与当前最优方案的代价比较if costdomainj0:neighbors.append(sol0:j+solj+1+solj+1:)if soljreload(optimization)domain=(0,8)*(len(optimization.people)*2)s=optimization.randomoptimize(domain,optimization.schedulecost)optimization.schedulecost(s)3328optimization.printsch

27、edule(s)SeymourBoston12:34-15:02$10912:08-14:05$142FrannyDallas12:19-15:25$3429:49-13:51$229ZooeyAkron9:15-12:14$24715:50-18:45$243WaltMiami15:34-18:11$32614:08-16:09$232BuddyChicago14:22-16:32$12615:04-17:23$189LesOmaha15:03-16:42$1356:19-8:13$239查看结果s=optimization.hillclimb(domain,optimization.sch

28、edulecost)optimization.schedulecost(s)3063optimization.printschedule(s)SeymourBOS12:34-15:02$10910:33-12:03$74FrannyDAL10:30-14:57$29010:51-14:16$256ZooeyCAK10:53-13:36$18910:32-13:16$139WaltMIA11:28-14:40$24812:37-15:05$170BuddyORD12:44-14:17$13410:33-13:11$132LesOMA11:08-13:07$17518:25-20:34$205总结

29、在本例中,首先使用Python的列表对不同的方案进行了数学建模,然后根据一些指标建立了代价函数,最后使用两种方法实现了优化过程。在整个过程中,Python的简单易用让我们能够集中精力解决实际的问题。而无需过多关注编程本身。此外,Python的交互控制台使得编程与调试过程变得自然顺畅。硬币的另一面限制Python发展的因素缺乏预包装的解决方案数据库访问层的局限性文档差距缺乏GUI和团队协作工具限制Python发展的因素缺乏预包装的解决方案缺乏预包装的解决方案PHP在企业软件领域赢得了辉煌的成功,主要原因就在于其广泛实用的产品门类,比如讨论板、聊天服务器和分组日历以及即时消息系统等。相比之下,Py

30、thon提供的解决方案就少多了。Python语言的分发版中确实包含了一些扩展的类库,越来越多的程序员也在致力于开发等价PHP的Python工具,但是考虑到市场的时间紧迫性,而且你所面临的问题已经有现成的PHP解决方案可以对付,那么PHP自然会成为你的首选。限制Python发展的因素数据库访问层的局限性数据库访问层的局限性相比现有的成熟技术,比如ODBC和JDBC,Python的数据库访问层看起来就过于原始了。虽然这一方面也在发生变化,但是,开发部门需要平滑地接合现有的复杂遗留数据,同时需要快速的SQL数据库访问,所有这一些使其在短时期内难以对Python表现出什么太大的兴趣。限制Python发

31、展的因素文档差距文档差距相比其对手语言,比如Perl、Java,在某种程度上再算上PHP,Python确实深受文档缺乏之苦,Python没有广泛、易于获得的文档和图书。市面上冠以PHP标题的图书数量几乎是Python的两倍多;而Perl就更多了,有400多种。Python的在线文档倒还组织得比较好,但是这些文档几乎全是些参考资料。幸而Python相当容易的学习曲线减轻了对图书资料的过多需要。限制Python发展的因素缺乏缺乏GUI和团队协作工具和团队协作工具给Python应用程序创建图形用户界面未必复杂。Python分发版本随带的Tk就是Python开发人员最常用的工具。但是Tk缺乏可访问、易

32、用的GUI工具。相比GUI工具的缺乏更要命的是Python几乎没有支持团队开发的协议工具。Java在这些工具领域可谓相当丰富。在企业软件开发市场上,这一缺陷简直可视为致命的要害。没有这类工具要让很多程序员共同开发同一项目几乎是不可能的。Python利用其模块化和命名空间分析等特性减轻了这一方面的需求,这些特性可以让多个程序员开发项目时不可能发生代码冲突的情况。但是,这同样改变不了其协同性能缺乏的严重性。如何学习“Dont learn.Just use it.”“Helloworld”天气预报RSS歌词搜索引擎版本CPython:www.python.org主流:2.5-2.7最新:3.0不向下

33、兼容ActivePython:Windows下的Python,文档和库较全IronPython:http:/ Editor/IDEVim/Emacs:Linux下流行的IDEPycharm资料“集体智慧编程集体智慧编程”“简明简明Python教程教程”“Python Cookbook”“IronPython In Action”“Google it.”安装试用文件位置:192.168.0.111临时中转x信息管理部SOFTPython271、解压python27.zip到C盘根目录;2、拷贝dll文件到C:WindowsSysWOW643、在环境变量path后面加入c:python富安娜家居用品股份有限公司

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服