书签 分享 收藏 举报 版权申诉 / 66
文档类型

Python经典入门教程

  • 上传人:超****个人认证
  • 文档编号:4715334
  • 上传时间:2021-11-25
  • 格式:PPTX
  • 页数:66
  • 大小:1.90MB
  • 《Python经典入门教程》由会员分享,可在线阅读,更多相关《Python经典入门教程(66页珍藏版)》请在万象文库上搜索。

    1、A Pera Global Company 2009 PERA China Python新语言,新平台新语言,新平台 杨帆 A Pera Global Company 2009 PERA China 大纲大纲 起源起源 特性特性 用途用途 不足不足 如何学习如何学习 A Pera Global Company 2009 PERA China A Pera Global Company 2009 PERA China 起源起源 作者作者 :Guido Van Rossum (GvR) http:/www.python.org/guido/ 名字的读法 “仁慈的终身独裁者” Benevolent Dictator For Life 他持。

    2、续关注 Python 的开发进程,指导支持 Python开源社区的活动,并在必要的时刻做出决定。 目前在 Google 工作 A Pera Global Company 2009 PERA China 得名得名 “1989年12月,我在寻找一门“课余”编程项目来打发圣诞节前后的时间。我的办公室会关门,但我有一台家用电脑,而且没有太多其它东西。我决定为当时我正构思的一个新的脚本语言写一个解释器,它是 ABC 语言的后代,对 UNIX / C 程序员会有吸引力。作为一个略微有些无关想法的人,和一个蒙提 派森(Monty Python)的飞行马戏团的狂热爱好者,我选择了 Python 作为项目的标题。” A Pera Global Com。

    3、pany 2009 PERA China 每个人都会每个人都会 Computer Programming for Everybody 1999年,Guido向DARPA 阐述Python语言的特性: 简单、直观、强大 开源,以便任何人都可以为它做贡献 代码像纯英语那样容易理解 适用于短期开发的日常任务 这些想法中的一些已经成为现实。Python 已经成为一门流行的 编程语言,尤其是在互联网环境下。 A Pera Global Company 2009 PERA China 大纲大纲 起源起源 特性特性 用途用途 不足不足 如何学习如何学习 A Pera Global Company 2009 PERA China A Pera Gl。

    4、obal Company 2009 PERA China 特性特性 交互式命令行交互式命令行(Interactive console) 不只是脚本不只是脚本 强大易用的标准库强大易用的标准库 胶水语言胶水语言(glue language) 收放自如收放自如(scalability) 不要括号不要括号 vs Perl vs Ruby A Pera Global Company 2009 PERA China 交互式命令行交互式命令行(Interactive console) Python可以单步直译运行。运行Python解释器进入交互式 命令行的环境,你可以在提示符号旁输入代码,按Enter键 输出结果: print(Hello, P。

    5、ython!) Hello, Python! 有点像Shell 脚本的执行方式。 A Pera Global Company 2009 PERA China 不只是脚本不只是脚本 原因是“脚本语言”泛指仅作简单编程任务的语言, 如Linux shell script、JavaScript等,它们只能处理简单的任务 而Python是面向对象编程(OOP)的,支持异常处理和类型检查 Python的支持者较喜欢称它为一种高阶动态编程语言 A Pera Global Company 2009 PERA China 强大易用的标准库强大易用的标准库 核心库不超过10Mb Html、Xml解析:BeautifulSoup, Expat 字符串处。

    6、理:字典、数组切片、正则表达式 re 单元测试: PyUnit 代码版本控制: PySVN 网络访问: urllib2 图形模块: Tkinter、PyTCL、WxPython 串行化、多线程等 扩展标准库十分容易扩展标准库十分容易 A Pera Global Company 2009 PERA China 胶水语言胶水语言(glue language) Python经常用作将不同语言编写的程序“粘”在一起的胶水语言。 Google内部的很多项目使用C+编写性能要求极高的部分, 然后用Python调用相应的模块。 C/C+: Boost.Python使得 Python 和 C+ 的类库能互相调用(.pyc) Java: Jython。

    7、 是用Java实现的Python,可同时使用二者的类库 .NET: IronPython是Python在.NET平台上的版本。 A Pera Global Company 2009 PERA China 收放自如收放自如(scalability) Python内建的数据结构(variable, list 和 dict)以及对多线程 分布式操作的支持,使得程序可以用相同的代码处理不同规模 的数据,以及并发的用户需求。 Google App Engine http:/ A Pera Global Company 2009 PERA China 不要括号不要括号 Python使用缩进而不是括号来进行代码段标识,减少了视觉上 的混乱,并且使。

    8、程序变短,从而提高了程序的可读性。 A Pera Global Company 2009 PERA China vs. Perl Perl是另一种广泛使用(滥用)的动态高级语言, 经常被用来与Python 比较。 正则表达式的典范 催生了CGI、PHP 黑客最喜爱的语言 Larry Wall Perl语言之父,语言学家 www.wall.org/larry/ 两届国际C语言混乱代码大赛(IOCCC) 的冠军 第一届自由软件奖得主 A Pera Global Company 2009 PERA China 程序员的三大美德程序员的三大美德 懒惰:懒惰:能让人尽量减少总能量支出的美德。它使你写出节省脑力、可以重用的代码;也督促你为程序写。

    9、注释和文档,那样你就不用回答各种问题。所以它是程序员的第一大美德。所以有了这本书。参见下两条。 不耐烦:不耐烦:当电脑想偷懒时你爆发的怒气. 它使你写的代码能主动预测、而非被动满足用户需求,至少装作是这样。所以它是程序员的第二大美德。 参见懒惰和傲慢。 傲慢:傲慢:自傲到人神共愤的程度,也是一种品质,能使你编写(维护)的程序让人无可指摘。所以它是程序员的第三大美德. 参见前两条。 A Pera Global Company 2009 PERA China 观点观点 Perl之父Larry Wall: “做一件事有很多种方法” Python资深开发者Tim Peters: “做一件事,应该有一种最直观的方法,而且最好只有一种。” Py。

    10、thon之父Guido Van Rossum: “做一件事情只有一种方法” A Pera Global Company 2009 PERA China vs. Ruby Ruby:比Python更年轻的动态语言 完全面向对象 支持正则表达式 整合了多种语言的优势 Ruby on Rails 网站快速开发工具 松本行弘松本行弘 (“Matz”) “不要重复自己” A Pera Global Company 2009 PERA China 国籍?国籍? 语言语言 作者作者 作者国籍作者国籍 编程风格编程风格 Perl Larry Wall 美国 随性自由 Python Guido van Rossum 荷兰 优雅统一 Ruby 松本行弘。

    11、 (“Matz”) 日本 兼容并包 A Pera Global Company 2009 PERA China 大纲大纲 起源起源 特性特性 用途用途 不足不足 如何学习如何学习 A Pera Global Company 2009 PERA China A Pera Global Company 2009 PERA China 用途用途 脚本程序 大型程序的原型开发 科学计算 网络应用 计算机图形编程 A Pera Global Company 2009 PERA China 知名的知名的Python应用应用 Zope: 一个应用程序服务器,具有内容管理、团队开发、XML、面向对象、SOAP接口等一系先进特性,开源。 Gadfly。

    12、:http:/ 一个用Python写的面向对象关系型数据库,具有小巧、快速、可移植性好的 特点,具有大部分SQL语言特性。开源。 Wallbase: http:/ Python编写的图片站点。 uTorrent : http:/ BitTorrent下载软件,主程序仅2Mb,支持ipv6地址解析。开源。 Torchlight: Python编写的大型3D游戏,原Blizzard公司人员制作发行,开源。 A Pera Global Company 2009 PERA China Google Apps Engine “Google App Engine 可让您在 Google 的基础架构上运行您的网络 应用程序。App Engine 。

    13、应用程序易于构建和维护,并可根据您的访 问量和数据存储需要的增长轻松扩展。使用 Google App Engine, 将不再需要维护服务器:您只需上传您的应用程序,它便可立即为您的用户提供服务。” Python 为GAE的数据存储区、Google 帐户、网址抓取和电子邮件服务提供了丰富的 Python API。GAE还提供了一个称为 webapp 的简单 Python 网络应用程序框架,从而可以轻松开始构建应用程序。 A Pera Global Company 2009 PERA China GAE的主要服务的主要服务 动态网络服务,提供对常用网络技术的完全支持 持久存储空间,支持查询、分类和事务 自动扩展和负载平衡 用户身份验证和。

    14、使用 Google 帐户发送电子邮件的 API 一套在本地模拟 GAE的开发环境 用于在指定时间和定期触发事件的计划任务 A Pera Global Company 2009 PERA China 两个例子两个例子 “集体智慧编程”“集体智慧编程” 根据品味相似度进行电影推荐 (第2章) 家族旅行问题的最优化算法 (第5章) A Pera Global Company 2009 PERA China 根据品味相似度进行电影推荐根据品味相似度进行电影推荐 基本思路: 从一大群人中找出与我们品味相近的一小群人,对这些人所喜爱的其他内容进行考查,并把它们组合起来创建一个经过排名的推荐列表。(协作过滤 Collaborative Filte。

    15、ring) 步骤: 1.搜集偏好 2.寻找相似的用户 3.推荐电影 A Pera Global Company 2009 PERA China 搜集偏好搜集偏好 首先找到一种表示不同人及其偏好的电影的方法。 可以使用人对几部电影的评分来刻画他们的偏好,评分从1到5, 分数越高,表示某人对该电影越喜欢。 如何建立这种从人到电影的对应关系? Python中有一个很简单的方法来表示这种数据结构: 使用嵌套的字典嵌套的字典。 A Pera Global Company 2009 PERA China 搜集偏好搜集偏好 创建名为recommandations.py 的数据文件: critics= Lisa Rose: Lady in the 。

    16、Water: 2.5, Snakes on a Plane: 3.5, Just My Luck: 3.0, Superman 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.5 Toby: Snakes on a Plane:4.5,You, Me and。

    17、 Dupree:1.0,Superman Returns:4.0 A Pera Global Company 2009 PERA China 搜集偏好搜集偏好 我们可以使用交互控制台对字典的数据进行查询和修改: from recommendations import critics criticsLisa RoseLady in the Water 2.5 criticsTobySnakes on a Plane=4.5 criticsToby Snakes on a Plane:4.5,You, Me and Dupree:1.0 A Pera Global Company 2009 PERA China 寻找相似的用户寻找相似的。

    18、用户 收集了人们的偏好数据后,我们需要方法来计算某两个人电影品味的相似度。 有两种基本的方法可以实现这个目的: 欧几里得距离欧几里得距离 皮尔逊相关度皮尔逊相关度 A Pera Global Company 2009 PERA China 欧几里得距离评价欧几里得距离评价 以二维空间中的情形为例:设坐标轴 为人们都评价过的两部电影,然后将 参与评价的人根据他们对这两部电影 的评分绘制到图上,并考察他们彼此 间的距离,如图: 图中的点距离越近,表明两个人的偏好越接近。推广到多维 向量空间,欧几里得法可表示为:计算每一轴上两点的差值求 平方,再将各轴相加,最后取平方根。 A Pera Global Company 2009 PERA C。

    19、hina 欧几里得距离评价欧几里得距离评价 如计算Toby和LaSalle的距离: from math import sqrt sqrt(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 A Pera Global Company 2009 PERA China 欧几里得距离评价欧几里得距离评价 使用这种方法 构造出如下相似度函数: def sim_distance(prefs,person1,person2): # 得到共同的。

    20、电影得到共同的电影 si= for item in prefsperson1: if item in prefsperson2: siitem=1 # 如果没有共同的电影则返回如果没有共同的电影则返回0 if len(si)=0: return 0 #计算欧几里得距离,返回相似度计算欧几里得距离,返回相似度 Sum_of_squares=sum(pow(prefsperson1item-prefsperson2item,2) for item in prefsperson1 if item in prefsperson2) return 1/(1+sum_of_squares) A Pera Global Company 2009 。

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

    22、 item in prefsp1: if item in prefsp2: siitem=1 # 如果没有共同评价的电影,返回如果没有共同评价的电影,返回0 if len(si)=0: return 0 # 将两人的偏好相加将两人的偏好相加 sum1=sum(prefsp1it for it in si) sum2=sum(prefsp2it for it in si) A Pera Global Company 2009 PERA China 皮尔逊相关度皮尔逊相关度 # 计算平方和计算平方和 sum1Sq=sum(pow(prefsp1it,2) for it in si) sum2Sq=sum(pow(prefsp2it,2)。

    23、 for it in si) # 计算对应项的乘积和计算对应项的乘积和 pSum=sum(prefsp1it*prefsp2it for it in si) # 计算皮尔逊相关度计算皮尔逊相关度 num=pSum-(sum1*sum2/n) den=sqrt(sum1Sq-pow(sum1,2)/n)*(sum2Sq-pow(sum2,2)/n) if den=0: return 0 r=num/den return r A Pera Global Company 2009 PERA China 皮尔逊相关度皮尔逊相关度 在交互式控制台中使用上述两种计算方法: reload(recommendations) recommendati。

    24、ons.sim_distance(recommendations.critics, . Lisa Rose,Gene Seymour) 0.148148148148 recommendations.sim_pearson(recommendations.critics, . Lisa Rose,Gene Seymour) 0.396059017191 A Pera Global Company 2009 PERA China 给评论者打分给评论者打分 有了对两个人进行比较的函数,下面就可以找出与某人品味 最接近的人了,进而,可以根据这些人的喜好来推荐电影。 def topMatches(prefs,person,n=5,simila。

    25、rity=sim_pearson): scores=(similarity(prefs,person,other),other) for other in prefs if other!=person # 对对list排序,相似度最高的人排在最前排序,相似度最高的人排在最前 scores.sort( ) scores.reverse( ) return scores0:n 在交互控制台中使用该函数: recommendations.topMatches(recommendations.critics,Toby,n=3) (0.99124070716192991, Lisa Rose), (0.92447345164190486, M。

    26、ick LaSalle), (0.89340514744156474, Claudia Puig) A Pera Global Company 2009 PERA China 推荐电影推荐电影 我们固然可以选择只看那些和我们品味相近的人推荐的电影, 但这样做太武断,也许某部电影大家普遍都觉得不错,而恰 好与我们最相近的那个人没有看过。 所以,我们需要一种对推荐人进行加权的推荐,如下表: 给Toby的电影推荐表 A Pera Global Company 2009 PERA China 推荐电影推荐电影 S.X打头的列是经过加权的电影评分。 下面的代码给出了上述过程的具体实现: def getRecommendations(prefs。

    27、,person,similarity=sim_pearson): totals= simSums= for other in prefs: # 不和自己比不和自己比 if other=person: continue sim=similarity(prefs,person,other) # 忽略小于等于忽略小于等于0的评分的评分 if sim reload(recommendations) recommendations.getRecommendations(recommendations.critics,Toby) (3.3477895267131013, The Night Listener), (2.8325499182641。

    28、614, Lady in the Water), (2.5309807037655645, Just My Luck) recommendations.getRecommendations(recommendations.critics,Toby, . similarity=recommendations.sim_distance) (3.5002478401415877, The Night Listener), (2.7561242939959363, Lady in the Water), (2.4619884860743739, Just My Luck) 结果显示,人们为Toby推荐了三部电影,而且用两种相似 度地算方法得。

    29、到的列表是一样的 。 A Pera Global Company 2009 PERA China 总结总结 到此为止,我们建立了一个完整的推荐系统,它适用于任何的 商品推荐以及基于相似度的数据关系挖掘。 而这一切在Python中,仅仅是建立一个涉及人、商品以及评价 值的字典,然后根据某些相似度算法得出的人与人的相似度, 就可以进行推荐了。 A Pera Global Company 2009 PERA China 家族旅行问题的最优化算法家族旅行问题的最优化算法 问题描述: Glass一家住在美国不同的地方。他们希望在纽约相聚,在同一天从各地坐飞机到纽约,几天后再一起离开。每天有许多往返的航班,起飞时间、价格以及飞行时间都不相同。 。

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

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

    1. 1、本文档共66页,下载后即可获取全部内容。
    2. 2、本文档由用户提供并上传,付费之前,请先通过免费阅读内容等途径辨别内容,收益归属内容提供方;如有侵权或不适当内容,请进行举报或申诉。
    3. 3、本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
    4. 4、万象文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
    提示  万象文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:Python经典入门教程
    链接地址:https://www.2wx.com/view-4715334.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 最近更新 - 网站客服 - 联系我们

    网站客服QQ:173720847

    copyright@ 2019-2023 万象文库(www.2wx.com)网站版权所有

    备案号:鄂ICP备19026039号-1

    本网站采用C2C交易模式,用户上传的文档直接被用户下载,网站仅作为一个中间服务平台,网站所有文档下载所得收入归上传人(包括作者)所有。万象文库网只提供储存空间,不会对上传内容本身作任何修改或编辑。如文件中包含任何侵犯您的版权或隐私,请立即通知我们,我们将立即予以删除!