Python经典入门教程

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

APeraGlobalCompany©2009PERAChinaPython——新语言,新平台杨帆APeraGlobalCompany©2009PERAChina大纲起源特性用途不足如何学习APeraGlobalCompany©2009PERAChinaAPeraGlobalCompany©2009PERAChina起源作者:GuidoVanRossum(GvR)~guido/名字的读法“仁慈的终身独裁者”BenevolentDictatorForLife他持续关注Python的开发进程,指导支持Python开源社区的活动,并在必要的时刻做出决定。目前在Google工作APeraGlobalCompany©2009PERAChina得名“1989年12月,我在寻找一门“课余”编程项目来打发圣诞节前后的时间。我的办公室会关门,但我有一台家用电脑,而且没有太多其它东西。我决定为当时我正构思的一个新的脚本语言写一个解释器,它是ABC语言的后代,对UNIX/C程序员会有吸引力。作为一个略微有些无关想法的人,和一个蒙提·派森(MontyPython)的飞行马戏团的狂热爱好者,我选择了Python作为项目的标题。”APeraGlobalCompany©2009PERAChina每个人都会ComputerProgrammingforEverybody1999年,Guido向DARPA阐述Python语言的特性:简单、直观、强大开源,以便任何人都可以为它做贡献代码像纯英语那样容易理解适用于短期开发的日常任务这些想法中的一些已经成为现实。Python已经成为一门流行的编程语言,尤其是在互联网环境下。APeraGlobalCompany©2009PERAChina大纲起源特性用途不足如何学习APeraGlobalCompany©2009PERAChinaAPeraGlobalCompany©2009PERAChina特性交互式命令行(Interactiveconsole)不只是脚本强大易用的标准库胶水语言(gluelanguage)收放自如(scalability)不要括号vsPerlvsRubyAPeraGlobalCompany©2009PERAChina交互式命令行(Interactiveconsole)Python可以单步直译运行。运行Python解释器进入交互式命令行的环境,你可以在提示符号旁输入代码,按Enter键输出结果:print(Hello,Python!)Hello,Python!有点像Shell脚本的执行方式。APeraGlobalCompany©2009PERAChina不只是脚本原因是“脚本语言”泛指仅作简单编程任务的语言,如Linuxshellscript、JavaScript等,它们只能处理简单的任务而Python是面向对象编程(OOP)的,支持异常处理和类型检查Python的支持者较喜欢称它为一种高阶动态编程语言APeraGlobalCompany©2009PERAChina强大易用的标准库核心库不超过10MbHtml、Xml解析:BeautifulSoup,Expat字符串处理:字典、数组切片、正则表达式re单元测试:PyUnit代码版本控制:PySVN网络访问:urllib2图形模块:Tkinter、PyTCL、WxPython串行化、多线程等扩展标准库十分容易APeraGlobalCompany©2009PERAChina胶水语言(gluelanguage)Python经常用作将不同语言编写的程序“粘”在一起的胶水语言。Google内部的很多项目使用C++编写性能要求极高的部分,然后用Python调用相应的模块。C/C++:Boost.Python使得Python和C++的类库能互相调用(.pyc)Java:Jython是用Java实现的Python,可同时使用二者的类库.NET:IronPython是Python在.NET平台上的版本。APeraGlobalCompany©2009PERAChina收放自如(scalability)Python内建的数据结构(variable,list和dict)以及对多线程分布式操作的支持,使得程序可以用相同的代码处理不同规模的数据,以及并发的用户需求。GoogleAppEngine©2009PERAChina不要括号Python使用缩进而不是括号来进行代码段标识,减少了视觉上的混乱,并且使程序变短,从而提高了程序的可读性。APeraGlobalCompany©2009PERAChinavs.PerlPerl是另一种广泛使用(滥用)的动态高级语言,经常被用来与Python比较。正则表达式的典范催生了CGI、PHP黑客最喜爱的语言LarryWallPerl语言之父,语言学家~larry/两届国际C语言混乱代码大赛(IOCCC)的冠军第一届自由软件奖得主APeraGlobalCompany©2009PERAChina程序员的三大美德懒惰:能让人尽量减少总能量支出的美德。它使你写出节省脑力、可以重用的代码;也督促你为程序写注释和文档,那样你就不用回答各种问题。所以它是程序员的第一大美德。所以有了这本书。参见下两条。不耐烦:当电脑想偷懒时你爆发的怒气.它使你写的代码能主动预测、而非被动满足用户需求,至少装作是这样。所以它是程序员的第二大美德。参见懒惰和傲慢。傲慢:自傲到人神共愤的程度,也是一种品质,能使你编写(维护)的程序让人无可指摘。所以它是程序员的第三大美德.参见前两条。APeraGlobalCompany©2009PERAChina观点Perl之父LarryWall:“做一件事有很多种方法”Python资深开发者TimPeters:“做一件事,应该有一种最直观的方法,而且最好只有一种。”Python之父GuidoVanRossum:“做一件事情只有一种方法”APeraGlobalCompany©2009PERAChinavs.RubyRuby:比Python更年轻的动态语言完全面向对象支持正则表达式整合了多种语言的优势RubyonRails网站快速开发工具松本行弘(“Matz”)“不要重复自己”APeraGlobalCompany©2009PERAChina国籍?语言作者作者国籍编程风格PerlLarryWall美国随性自由PythonGuidovanRossum荷兰优雅统一Ruby松本行弘(“Matz”)日本兼容并包APeraGlobalCompany©2009PERAChina大纲起源特性用途不足如何学习APeraGlobalCompany©2009PERAChinaAPeraGlobalCompany©2009PERAChina用途脚本程序大型程序的原型开发科学计算网络应用计算机图形编程APeraGlobalCompany©2009PERAChina知名的Python应用Zope:一个应用程序服务器,具有内容管理、团队开发、XML、面向对象、SOAP接口等一系先进特性,开源。Gadfly:一个用Python写的面向对象关系型数据库,具有小巧、快速、可移植性好的特点,具有大部分SQL语言特性。开源。Wallbase:编写的图片站点。uTorrent:下载软件,主程序仅2Mb,支持ipv6地址解析。开源。Torchlight:torchlight.perfectworld.comPython编写的大型3D游戏,原Blizzard公司人员制作发行,开源。APeraGlobalCompany©2009PERAChinaGoogleAppsEngine“GoogleAppEngine可让您在Google的基础架构上运行您的网络应用程序。AppEngine应用程序易于构建和维护,并可根据您的访问量和数据存储需要的增长轻松扩展。使用GoogleAppEngine,将不再需要维护服务器:您只需上传您的应用程序,它便可立即为您的用户提供服务。”Python为GAE的数据存储区、Google帐户、网址抓取和电子邮件服务提供了丰富的PythonAPI。GAE还提供了一个称为webapp的简单Python网络应用程序框架,从而可以轻松开始构建应用程序。APeraGlobalCompany©2009PERAChinaGAE的主要服务动态网络服务,提供对常用网络技术的完全支持持久存储空间,支持查询、分类和事务自动扩展和负载平衡用户身份验证和使用Google帐户发送电子邮件的API一套在本地模拟GAE的开发环境用于在指定时间和定期触发事件的计划任务APeraGlobalCompany©2009PERAChina两个例子“集体智慧编程”根据品味相似度进行电影推荐(第2章)家族旅行问题的最优化算法(第5章)APeraGlobalCompany©2009PERAChina根据品味相似度进行电影推荐基本思路:从一大群人中找出与我们品味相近的一小群人,对这些人所喜爱的其他内容进行考查,并把它们组合起来创建一个经过排名的推荐列表。(协作过滤CollaborativeFiltering)步骤:1.搜集偏好2.寻找相似的用户3.推荐电影APeraGlobalCompany©2009PERAChina搜集偏好首先找到一种表示不同人及其偏好的电影的方法。可以使用人对几部电影的评分来刻画他们的偏好,评分从1到5,分数越高,表示某人对该电影越喜欢。如何建立这种从人到电影的对应关系?Python中有一个很简单的方法来表示这种数据结构:使用嵌套的字典。APeraGlobalCompany©2009PERAChina搜集偏好创建名为recommandations.py的数据文件:critics={'LisaRose':{'LadyintheWater':2.5,'SnakesonaPlane':3.5,'JustMyLuck':3.0,'SupermanReturns':3.5,'You,MeandDupree':2.5,'TheNightListener':3.0},'GeneSeymour':{'LadyintheWater':3.0,'SnakesonaPlane':3.5,'JustMyLuck':1.5,'SupermanReturns':5.0,'TheNightListener':3.0,'You,MeandDupree':3.5}'Toby':{'SnakesonaPlane':4.5,'You,MeandDupree':1.0,'SupermanReturns':4.0}}}APeraGlobalCompany©2009PERAChina搜集偏好我们可以使用交互控制台对字典的数据进行查询和修改:fromrecommendationsimportcriticscritics['LisaRose']['LadyintheWater']2.5critics['Toby']['SnakesonaPlane']=4.5critics['Toby']{'SnakesonaPlane':4.5,'You,MeandDupree':1.0}APeraGlobalCompany©2009PERAChina寻找相似的用户收集了人们的偏好数据后,我们需要方法来计算某两个人电影品味的相似度。有两种基本的方法可以实现这个目的:欧几里得距离皮尔逊相关度APeraGlobalCompany©2009PERAChina欧几里得距离评价以二维空间中的情形为例:设坐标轴为人们都评价过的两部电影,然后将参

1 / 66
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功