Python程序开发教程

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

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

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

资源描述

2020/9/201Python程序开发——信息管理部王辉——0103Python程序开发Python背景介绍02Python特色课程导航起源•作者:GuidoVanRossum(GvR)•~guido/•名字的读法•“仁慈的终身独裁者”•BenevolentDictatorForLife•他持续关注Python的开发进程,指导支持•Python开源社区的活动,并在必要的时刻做出决定。•目前在Google工作得名•“1989年12月,我在寻找一门“课余”编程项目来打发圣诞节前后的时间。我的办公室会关门,但我有一台家用电脑,而且没有太多其它东西。我决定为当时我正构思的一个新的脚本语言写一个解释器,它是ABC语言的后代,对UNIX/C程序员会有吸引力。作为一个略微有些无关想法的人,和一个蒙提·派森(MontyPython)的飞行马戏团的狂热爱好者,我选择了Python作为项目的标题。”每个人都会•ComputerProgrammingforEverybody•1999年,Guido向DARPA阐述Python语言的特性:•简单、直观、强大•开源,以便任何人都可以为它做贡献•代码像纯英语那样容易理解•适用于短期开发的日常任务•这些想法中的一些已经成为现实。Python已经成为一门流行的编程语言,尤其是在互联网环境下。Python启示录•Python崇尚优美、清晰、简单,是一个优秀并广泛使用的语言。•TIOBE语言排行第八,Google的第三大开发语言,Dropbox的基础语言,豆瓣的服务器语言。0103Python程序开发Python背景介绍02Python特色课程导航特性•交互式命令行(Interactiveconsole)•不只是脚本•强大易用的标准库•胶水语言(gluelanguage)•收放自如(scalability)•不要括号•vsPerl•vsRuby交互式命令行(Interactiveconsole)•Python可以单步直译运行。运行Python解释器进入交互式•命令行的环境,你可以在提示符号旁输入代码,按Enter键•输出结果:•print(Hello,Python!)•Hello,Python!•有点像Shell脚本的执行方式。不只是脚本•原因是“脚本语言”泛指仅作简单编程任务的语言,如Linuxshellscript、JavaScript等,它们只能处理简单的任务•而Python是面向对象编程(OOP)的,支持异常处理和类型检查•Python的支持者较喜欢称它为一种高阶动态编程语言强大易用的标准库•核心库不超过10Mb•Html、Xml解析:BeautifulSoup,Expat•字符串处理:字典、数组切片、正则表达式re•单元测试:PyUnit•代码版本控制: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平台上的版本。收放自如(scalability)•Python内建的数据结构(variable,list和dict)以及对多线程•分布式操作的支持,使得程序可以用相同的代码处理不同规模•的数据,以及并发的用户需求。•GoogleAppEngine•不要括号•Python使用缩进而不是括号来进行代码段标识,减少了视觉上的混乱,并且使程序变短,从而提高了程序的可读性。vs.Perl•Perl是另一种广泛使用(滥用)的动态高级语言,•经常被用来与Python比较。•正则表达式的典范•催生了CGI、PHP•黑客最喜爱的语言•LarryWallPerl语言之父,语言学家•~larry/•两届国际C语言混乱代码大赛(IOCCC)的冠军•第一届自由软件奖得主程序员的三大美德•懒惰:能让人尽量减少总能量支出的美德。它使你写出节省脑力、可以重用的代码;也督促你为程序写注释和文档,那样你就不用回答各种问题。所以它是程序员的第一大美德。所以有了这本书。参见下两条。•不耐烦:当电脑想偷懒时你爆发的怒气.它使你写的代码能主动预测、而非被动满足用户需求,至少装作是这样。所以它是程序员的第二大美德。参见懒惰和傲慢。•傲慢:自傲到人神共愤的程度,也是一种品质,能使你编写(维护)的程序让人无可指摘。所以它是程序员的第三大美德.参见前两条。•观点•Perl之父LarryWall:•“做一件事有很多种方法”•Python资深开发者TimPeters:•“做一件事,应该有一种最直观的方法,而且最好只有一种。”•Python之父GuidoVanRossum:•“做一件事情只有一种方法”vs.Ruby•Ruby:比Python更年轻的动态语言–完全面向对象–支持正则表达式–整合了多种语言的优势–RubyonRails网站快速开发工具•松本行弘(“Matz”)•“不要重复自己”国籍语言作者作者国籍编程风格PerlLarryWall美国随性自由PythonGuidovanRossum荷兰优雅统一Ruby松本行弘(“Matz”)日本兼容并包用途•脚本程序•大型程序的原型开发•科学计算•网络应用•计算机图形编程知名的Python应用•Zope:•一个应用程序服务器,具有内容管理、团队开发、XML、面向对象、SOAP接口等一系先进特性,开源。•Gadfly:•一个用Python写的面向对象关系型数据库,具有小巧、快速、可移植性好的•特点,具有大部分SQL语言特性。开源。•Wallbase:•Python编写的图片站点。•uTorrent:•BitTorrent下载软件,主程序仅2Mb,支持ipv6地址解析。开源。•Torchlight:torchlight.perfectworld.com•Python编写的大型3D游戏,原Blizzard公司人员制作发行,开源。GoogleAppsEngine•“GoogleAppEngine可让您在Google的基础架构上运行您的网络应用程序。AppEngine应用程序易于构建和维护,并可根据您的访问量和数据存储需要的增长轻松扩展。•使用GoogleAppEngine,将不再需要维护服务器:您只需上传您的应用程序,它便可立即为您的用户提供服务。”–Python为GAE的数据存储区、Google帐户、网址抓取和电子邮件服务提供了丰富的PythonAPI。GAE还提供了一个称为webapp的简单Python网络应用程序框架,从而可以轻松开始构建应用程序。GAE的主要服务•动态网络服务,提供对常用网络技术的完全支持•持久存储空间,支持查询、分类和事务•自动扩展和负载平衡•用户身份验证和使用Google帐户发送电子邮件的API•一套在本地模拟GAE的开发环境•用于在指定时间和定期触发事件的计划任务0103Python程序开发Python背景介绍02Python特色课程导航HelloWorld例子•在hello.py中写入如下,并保存:print('HelloWorld!')•退出文本编辑器,然后在命令行输入:pythonhello.py•可以看到Python随后输出:HelloWorld!基本数据类型a=10#int整数a=1.3#float浮点数a=True#真值(True/False)a='Hello!'#字符串。字符串也可以用双引号。for循环for元素in序列:statement例子:forain[3,4.4,'life']:printawhile循环while条件:statement举例:whilei10:printii=i+1sequence序列•sequence(序列)是一组有顺序的元素的集合。•序列可以包含一个或多个元素,也可以没有任何元素。•序列有两种:tuple(美[tʌpl]定值表;也有翻译为元组)和list(表)。tuple和list的主要区别在于,一旦建立,tuple的各个元素不可再变更,而list的各个元素可以再变更。•s1=(2,1.3,'love',5.6,9,12,False)#s1是一个tuple•s2=[True,5,'smile']#s2是一个list•序列元素的下标从0开始•print(s2[1])正则表达式•正则表达式(regularexpression)主要功能是从字符串(string)中通过特定的模式(pattern),搜索想要找到的内容。•在Python中使用正则表达式需要标准库中的一个包re。importrem=re.search('[0-9]','abcd4ef')print(m.group(0))正则表达式m=re.search(pattern,string)#搜索整个字符串,直到发现符合的子字符串。m=re.match(pattern,string)#从头开始检查字符串是否符合正则表达式。必须从字符串的第一个字符开始就相符。正则表达式str=re.sub(pattern,replacement,string)#在string中利用正则变换pattern进行搜索,对于搜索到的字符串,用另一字符串replacement替换。返回替换后的字符串。正则表达式re.split()#根据正则表达式分割字符串,将分割后的所有子字符串放在一个表(list)中返回re.findall()#根据正则表达式搜索字符串,将所有符合的子字符串放在一给表(list)中返回正则表达式正则表达式的常用语法:1)单个字符:.任意的一个字符a|b字符a或字符b[afg]a或者f或者g的一个字符[0-4]0-4范围内的一个字符[a-f]a-f范围内的一个字符[^m]不是m的一个字符\s一个空格\S一个非空格\d[0-9]\D[^0-9]\w[0-9a-zA-Z]\W[^0-9a-zA-Z]正则表达式d2)重复紧跟在单个字符之后,表示多个这样类似的字符*重复=0次+重复=1次?重复0或者1次{m}重复m次。比如说a{4}相当于aaaa,再比如说[1-3]{2}相当于[1-3][1-3]{m,n}重复m到n次。比如说a{2,5}表示a重复2到5次。小于m次的重复,或者大于n次的重复都不符合条件。正则表达式正则表达相符的字符串举例[0-9]{3,5}9678a?bba+baaaaab正则表达式正则表达式的常用语法:1)单个字符:.任意的一个字符a|b字符a或字符b[afg]a或者f或者g的一个字符[0-4]0-4范围内的一个字符[a-f]a-f范围内的一个字符[^m]不是m的一个字符\s一个空格\S一个非空格\d[0-9]\D[^0-9]\w[0-9a-zA-Z]\W[^0-9a-zA-Z]2)重复紧跟在单个字符之后,表示多个这样类似的字符*重复=0次+重复=1次?重复0或者1次{m}重复m次。比如说a{4}相当于aaaa,再比如说[1-3]{2}相当于[1-3][1-3]{m,n}重复m到n次。比如说a{2,5}表示a重复2到5次。小于m次的重复,或者大于n次的重复都不符合条件。正则表达相符的字符串举例[0-9]{3,5}9678a?bba+baaaaab两个例子•“集体智慧编程”•根据品味相似度进行电影推荐•(第2章)•家族旅行问题的最优化算

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

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

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

×
保存成功