Python经典入门教程
/intl/zh-CN/appengine/
A Pera Global Company © 2009 PERA China
不要括号
Python使用缩进而不是括号来进行代码段标识,减少了视觉上 的混乱,并且使程序变短,从而提高了程序的可读性。
A Pera Global Company © 2009 PERA China
Java:
Jython 是用Java实现的Python,可同时使用二者的类库 .NET:
IronPython是Python在.NET平台上的版本。
A Pera Global Company © 2009 PERA China
收放自如(scalability)
Python内建的数据结构(variable, list 和 dict)以及对多线程 分布式操作的支持,使得程序可以用相同的代码处理不同规模 的数据,以及并发的用户需求。 Google App Engine
Python——新语言,新平台
杨帆
A Pera Global Company © 2009 PERA China
大纲
Байду номын сангаас起源 特性
用途
不足 如何学习
A Pera Global Company © 2009 PERA China
起源
作者 :Guido Van Rossum (GvR)
/~guido/ 名字的读法
强大易用的标准库
核心库不超过10Mb Html、Xml解析:BeautifulSoup, Expat 字符串处理:字典、数组切片、正则表达式 re 单元测试: PyUnit 代码版本控制: PySVN
网络访问: urllib2
图形模块: Tkinter、PyTCL、WxPython 串行化、多线程等
一个用Python写的面向对象关系型数据库,具有小巧、快速、可移植性好的 特点,具有大部分SQL语言特性。开源。
Wallbase:
Python编写的图片站点。
uTorrent :
BitTorrent下载软件,主程序仅2Mb,支持ipv6地址解析。开源。
“做一件事有很多种方法”
Python资深开发者Tim Peters:
“做一件事,应该有一种最直观的方法,而且最好只有一种。”
Python之父Guido Van Rossum:
“做一件事情只有一种方法”
A Pera Global Company © 2009 PERA China
vs. Ruby
Ruby:比Python更年轻的动态语言
A Pera Global Company © 2009 PERA China
搜集偏好
创建名为recommandations.py 的数据文件:
critics={ 'Lisa Rose': {'Lady in the Water': 2.5, 'Snakes on a Plane': 3.5,
'Just My Luck': 3.0, 'Superman Returns': 3.5, 'You, Me and Dupree': 2.5,
A Pera Global Company © 2009 PERA China
两个例子
“集体智慧编程”
根据品味相似度进行电影推荐
(第2章)
家族旅行问题的最优化算法
(第5章)
A Pera Global Company © 2009 PERA China
根据品味相似度进行电影推荐
基本思路: 从一大群人中找出与我们品味相近的一小群人,对这些人所喜 爱的其他内容进行考查,并把它们组合起来创建一个经过排名 的推荐列表。(协作过滤 Collaborative Filtering) 步骤: 1.搜集偏好 2.寻找相似的用户 3.推荐电影
A Pera Global Company © 2009 PERA China
程序员的三大美德
懒惰:能让人尽量减少总能量支出的美德。它使你写出节省脑力、可以重
用的代码;也督促你为程序写注释和文档,那样你就不用回答各种问题。 所以它是程序员的第一大美德。所以有了这本书。参见下两条。
不耐烦:当电脑想偷懒时你爆发的怒气. 它使你写的代码能主动预测、而
'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 Dupree':1.0,'Superman Returns':4.0}} }
Torchlight:
Python编写的大型3D游戏,原Blizzard公司人员制作发行,开源。
A Pera Global Company © 2009 PERA China
Google Apps Engine
“Google App Engine 可让您在 Google 的基础架构上运行您的网络 应用程序。App Engine 应用程序易于构建和维护,并可根据您的访 问量和数据存储需要的增长轻松扩展。使用 Google App Engine,
不只是脚本
原因是“脚本语言”泛指仅作简单编程任务的语言, 如Linux shell script、JavaScript等,它们只能处理简单的任务 而Python是面向对象编程(OOP)的,支持异常处理和类型检查
Python的支持者较喜欢称它为一种高阶动态编程语言
A Pera Global Company © 2009 PERA China
扩展标准库十分容易
A Pera Global Company © 2009 PERA China
胶水语言(glue language)
Python经常用作将不同语言编写的程序“粘”在一起的胶水语言。 Google内部的很多项目使用C++编写性能要求极高的部分, 然后用Python调用相应的模块。 C/C++: Boost.Python使得 Python 和 C++ 的类库能互相调用(.pyc)
完全面向对象 支持正则表达式
整合了多种语言的优势
Ruby on Rails 网站快速开发工具
松本行弘 (“Matz”)
“不要重复自己”
A Pera Global Company © 2009 PERA China
国籍?
语言 Perl 作者 Larry Wall 作者国籍 美国 编程风格 随性自由
Python
“仁慈的终身独裁者” Benevolent Dictator For Life
他持续关注 Python 的开发进程,指导支持 Python开源社区的活动,并在必要的时刻做出决定。 目前在 Google 工作
A Pera Global Company © 2009 PERA China
得名
“1989年12月,我在寻找一门“课余”编程项目来打发圣诞节 前后的时间。我的办公室会关门,但我有一台家用电脑,而 且没有太多其它东西。我决定为当时我正构思的一个新的脚 本语言写一个解释器,它是 ABC 语言的后代,对 UNIX / C 程序员会有吸引力。作为一个略微有些无关想法的人,和一 个蒙提· 派森(Monty Python)的飞行马戏团的狂热爱好者, 我选择了 Python 作为项目的标题。”
将不再需要维护服务器:您只需上传您的应用程序,它便可立即为您的 用户提供服务。” Python 为GAE的数据存储区、Google 帐户、网址抓取和电子邮件服务 提供了丰富的 Python API。GAE还提供了一个称为 webapp 的简单 Python 网络应用程序框架,从而可以轻松开始构建应用程序。
非被动满足用户需求,至少装作是这样。所以它是程序员的第二大美德。 参见懒惰和傲慢。
傲慢:自傲到人神共愤的程度,也是一种品质,能使你编写(维护)的程序
让人无可指摘。所以它是程序员的第三大美德. 参见前两条。
A Pera Global Company © 2009 PERA China
观点
Perl之父Larry Wall:
A Pera Global Company © 2009 PERA China
搜集偏好
我们可以使用交互控制台对字典的数据进行查询和修改: >> from recommendations import critics >> critics['Lisa Rose']['Lady in the Water'] 2.5 >> critics['Toby']['Snakes on a Plane']=4.5
A Pera Global Company © 2009 PERA China
搜集偏好
首先找到一种表示不同人及其偏好的电影的方法。 可以使用人对几部电影的评分来刻画他们的偏好,评分从1到5, 分数越高,表示某人对该电影越喜欢。
如何建立这种从人到电影的对应关系?
Python中有一个很简单的方法来表示这种数据结构: 使用嵌套的字典。
Python可以单步直译运行。运行Python解释器进入交互式 命令行的环境,你可以在提示符号>>>旁输入代码,按Enter键 输出结果: >>> print("Hello, Python!") Hello, Python! 有点像Shell 脚本的执行方式。