Python程序设计第1章-入门课件_第1页
Python程序设计第1章-入门课件_第2页
Python程序设计第1章-入门课件_第3页
Python程序设计第1章-入门课件_第4页
Python程序设计第1章-入门课件_第5页
已阅读5页,还剩69页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2023/1/9第1章Python入门主讲人:2023/1/8第1章Python入门目录2023/1/923.Python可以做些什么4.Python的优点5.Python和其他语言的比较6.项目开始1.Python的发展历程2.为什么使用Python目录2023/1/823.Python可以做些什么4.P2023/1/91.Python的发展历程Python是一种简单易学,功能强大的编程语言。它有高效率的高层数据结构,能够简单、有效地实现面向对象编程。Python语法简单,支持动态输入,是解释型语言。在大多数平台上,对于众多领域,Python都是一个理想的开发语言,特别适合于应用程序的快速开发。2023/1/81.Python的发展历程Python是一种2023/1/91.Python的发展历程目前GuidovanRossum在Google工作,主要从事GAE/Python3.x方面的研究。创始人:GuidovanRossum时间地点:1989年圣诞节期间在阿姆斯特丹创造名字来源:大蟒蛇飞行马戏团的爱好者渊源:从ABC发展而来主要受Modula-3的影响结合了Unixshell和C的习惯2023/1/81.Python的发展历程目前Guidov2023/1/91.Python的发展历程Python面世Python2.0于2000年10月16日发布,主要实现了完整的垃圾回收,并且支持Unicode。Python3.0于2008年12月3日发布,此版不完完全兼容之前的Python源代码。目前使用最广泛的版本是Python3.5,最新的版本是Python3.6.12023/1/81.Python的发展历程Python面世P2023/1/91.Python的发展历程Python的设计哲学:01简单03优雅02明确Python开发者的哲学:“用一种方法,最好是只有一种方法来做一件事”。在设计Python语言时,如果面临多种选择,Python开发者总会拒绝花哨的语法,而选择明确的没有或者很少有歧义的语法。2023/1/81.Python的发展历程Python的设计2023/1/92.为什么使用PythonPacktPublishing是世界上关于编程方面最大的出版商,它在2016年对11000名访客进行了调查,调查内容包括开发者使用的编程语言、喜欢的框架、薪酬信息等几个方面。调查显示,Python和JavaScript是当今最流行的编程语言,而Java紧随其后,排名第三。2023/1/82.为什么使用PythonPacktPu2023/1/92.为什么使用Python2011年1月,Python被TIOBE编程语言排行榜评为2010年度语言。最近几年Python变得越来越流行,在2017年5月TIOBE编程语言排行榜中,Python已处在第四的位置。2023/1/82.为什么使用Python2011年1月,2023/1/92.为什么使用Python2017年5月TIOBE编程语言排行TOP10榜单2023/1/82.为什么使用Python2017年5月T2023/1/93.Python可以做些什么桌面GUI软件开发(wxPython,

PyQT…)网络应用开发(内置模块,Twistd,

Stackless…)2/3D图形处理,游戏开发(PIL,

pyGame…)文档处理,科学计算(moinmoin,

numpy…)Web应用开发(Flask,

Django,Z,OPEQuixote…)移动设备应用开发(PyS60…)数据库开发(支持SQL和NOSQL,

ZODB…)嵌入其它应用(嵌入C/C++,

delphi,调用DLL…)3.1运用领域2023/1/83.Python可以做些什么桌面GUI软件2023/1/93.Python可以做些什么3.2谁在用Python典型几个国外公司:2023/1/83.Python可以做些什么3.2谁在用2023/1/93.Python可以做些什么典型几个国内公司:3.2谁在用Python2023/1/83.Python可以做些什么典型几个国内公2023/1/924.Python的优点免费—Python的使用和分发是完全免费的。可升级—Python提供了基本的开发模块,你可以在它上面开发你的软件,而且当这些需要扩展和增长时,Python的可插入性和模块化结构能使你的项目生机盎然并易于管理。解释性—

Python编写的程序无需编译,可直接从源代码运行程序。易维护

几个月后阅读自己的代码,不会云里雾里。可移植性—由于它的开源本质,Python已经被移植在许多平台上。2023/1/824.Python的优点免费—Pyth2023/1/9面向对象—

Python即支持面向过程的编程也支持面向对象的编程。在“面向过程”的语言中,程序是由过程或仅仅是可重用代码的函数构建起来的。在“面向对象”的语言中,程序是由数据和功能组合而成的对象构建起来的。丰富的库—

Python标准库庞大。可帮助处理各种工作,包括正则表达式、文档生成、单元测试、线程、数据库、网页浏览器、CGI、FTP、电子邮件、XML、XML-RPC、HTML、

WAV文件、密码系统、GUI(图形用户界面)、Tk和其他与系统有关的操作4.Python的优点2023/1/84.Python的优点2023/1/95.Python和其他语言的比较PythonVS

C:Python是动态编译语言,C是静态编辑语言。C中内容管理是由开发者管理,Python中内存问题由Python解释器负责。Python自带数据类型支持库。C中对于混杂数组(Python中得列表)和哈希表(Python中得字典)还未存在标准库。Python不能用来写内核。借助Python语言提供的API,使用C或者C++来对Python进行功能性扩展。2023/1/85.Python和其他语言的比较Pytho2023/1/9PythonVSJava:Python支持面向对象&函数编程方式。java支持面向对象。Python比Java要简单,非常适合与构造快速原型。Python和Java适合多名程序员以渐进方式协同开发大型项目。PythonVSSHELL:Python语法简单,可移植性好。Shell代码重用读低,造成代码量大。Python可以重用代码,提倡简洁的代码设计,高级的数据库结构和模块化组建。5.Python和其他语言的比较2023/1/8PythonVSJava:5.Pyt2023/1/95.Python和其他语言的比较PythonVS

Ruby:Ruby没有Python的简单性。比较复杂的面向对象语法、“块”语法的引入、正则表达式的引入、一些简写标记都增加了语言的复杂性。Python的缩进表达方式比Ruby的Basic的表达方式更让人悦目,Ruby程序满眼的end让人不舒服。当然,Ruby认为end的方式比Python更先进。Ruby还没有Python的“自省”能力,没有从程序文件中生成文档的能力。Ruby还没有国际化的支持,这是因为Ruby的历史比Python要短。2023/1/85.Python和其他语言的比较Pytho2023/1/9PythonVS

PHP:Python的可读性、可维护性比PHP好。PHP这种类C的语法是以大括号划分代码块来确定程序逻辑的,而Python则采用代码缩进的形式。Python是跨平台的,你可以运用Python在Mac、Linux、Windows下;PHP没有这些能力。PHP支持switch和do…while结构,而Python则不支持。5.Python和其他语言的比较2023/1/8PythonVSPHP:5.Pytho2023/1/96.项目开始6.1Python版本差异Python2.x和Python3.x都处在Python社区的积极维护之中。但是Python2.x已经不再进行功能开发,只会进行bug修复、安全增强以及移植等工作,以便使开发者能顺利从Python2.x迁移到Python3.x。Python3.x经常会添加新功能并提供改进,而这些功能与改进不会出现在Python2.x中。所以强烈建议大家使用Python3.x来开发自己的下一个Python项目。2023/1/86.项目开始6.1Python版本差异P2023/1/9Python2.x和Python3.x有一个最大的不同点,那就是语法,例如最简单的print()。如果在Python3.x中输入print('HelloWorld!'),会成功打印。但是如果用Python2.x的print()语法来打印,例如输入print'HelloWorld!',就会报错。6.项目开始6.1Python版本差异—print()2023/1/8Python2.x和Python3.x有2023/1/9Python2.x:>>>x=2,y=3>>>z=x+y>>>printz5Python3.x:>>>x='a'>>>y='b'>>>print(x,y)ab6.项目开始6.1Python版本差异—print()在Python2.x中使用额外的括号也是可以的。但反过来,在Python3.x中想以Python2.x中不带括号的形式调用print函数,则会触发SyntaxError异常。2023/1/8Python2.x:6.项目开始6.12023/1/9Python2.x:>>>print('Hello,World!')('Hello,World!')Python3.x:>>>print'Hello,World!'SyntaxError:Missingparenthesesincallto'print'>>>print('Hello,World!')Hello,World!>>>print(('Hello,World!'))('Hello,World!')6.项目开始6.1Python版本差异—print()2023/1/8Python2.x:6.项目开始6.12023/1/926.项目开始6.1Python版本差异—除法运算Python中的除法有/和//两个运算符。在Python2.x中/除法就跟我们熟悉的Java、C语言差不多一样。整数相除的结果是一个整数,把小数部分完全忽略掉,浮点数除法会保留小数点的部分得到一个浮点数。在Python3.x中/除法不再这么做了,对于整数之间的相除,结果也会是浮点数。Python2.x:>>>5/41>>>5/4.01.25>>>5.0/4.01.252023/1/826.项目开始6.1Python版本差异2023/1/9Python3.x:>>>5/41.25>>>5/4.01.25>>>5.0/4.01.256.项目开始6.1Python版本差异—除法运算

接上一页PPT而对于//除法,这种除法叫作floor除法,会对除法的结果自动进行一个floor操作,在Python2.x和Python3.x中是一致的。2023/1/8Python3.x:6.项目开始6.12023/1/96.项目开始6.1Python版本差异—UnicodePython2.x有ASCIIstr()类型,其中unicode()是单独的且不是byte类型。现在,在Python3.x中,我们最终有了Unicode(utf-8)字符串,以及一个字节类:byte和bytearrays。2023/1/86.项目开始6.1Python版本差异—2023/1/96.项目开始6.1Python版本差异—异常在Python3.x中处理异常也有微小的变化,我们使用as作为关键词。捕获异常的语法由exceptexc,var改为exceptexcasvar。使用语法except(exc1,exc2)asvar可以同时捕获多种类别的异常。在Python2.x中,异常在代码中除了表示程序错误,还经常做一些普通控制结构应该做的事情。在Python3.x中可以看出,设计者让异常变得更加专一,只有在错误发生的情况才能用异常捕获语句来处理。2023/1/86.项目开始6.1Python版本差异—2023/1/96.项目开始6.1Python版本差异—八进制字面量表示在Python3.x中,表示八进制字面量的方式只有一种,就是0o1000。python2.x:>>>0o1000512>>>01000512python3.x:>>>01000SyntaxError:invalidtoken>>>0o10005122023/1/86.项目开始6.1Python版本差异—2023/1/96.项目开始6.1Python版本差异—不等运算符在Python2.x中不等于有两种写法:!=和<>,而在Python3.x中去掉了<>,只有!=一种写法。2023/1/86.项目开始6.1Python版本差异—2023/1/96.项目开始6.1Python版本差异—数据类型Python3.x去除了long类型,现在只有一种整型int,但它的行为就像Python2.x版本的long。新增了bytes类型,对应于Python2.x版本的八位串。2023/1/86.项目开始6.1Python版本差异—2023/1/926.项目开始6.1Python版本差异—面向对象引入抽象基类(AbstraactBaseClasses,ABCs)。容器类和迭代器类被ABCs化,所以cellections模块里的类型比Py2.5多了很多。另外,数值类型也被ABCs化(具体参阅PEP3119和PEP3141)。迭代器的next()方法改名为__next__(),并增加内置函数next(),用以调用迭代器的__next__()方法增加了@abstractmethod和@abstractproperty两个decorator,编写抽象方法(属性)更加方便。2023/1/826.项目开始6.1Python版本差异2023/1/9在Python2.x中xrange()创建迭代对象的用法是非常流行的,比如:for循环或者是列表/集合/字典推导式,这个表现十分像生成器(比如“惰性求值”)。但这里的xrange-iterable是无尽的,这意味着可能在这个xrange上无限迭代。在Python3.x中,range()的实现方式与xrange()函数相同,所以就不存在专用的xrange()(在Python3.x中使用xrange()会触发NameError)。6.项目开始6.1Python版本差异—xrange2023/1/8在Python2.x中xrange()创建2023/1/96.2项目结构我们应该审慎地使用包和层次结构,使得项目结构保持简单。因为过深的层次结构会使得目录导航变得困难,而过平的层次结构则会使项目变得臃肿。将单元测试放在包目录的外面是一个常犯的错误。这些测试实际上应该被包含在软件的子一级包中,原因如下:避免被setuptools(或者其他打包的库)作为tests顶层模块自动安装。便于被安装,且其他包能够利用它们构建自己的单元测试。6.项目开始2023/1/86.2项目结构我们应该审慎地使用包和层次结2023/1/96.项目开始标准的包目录结构2023/1/86.项目开始标准的包目录结构2023/1/9setup.py是Python安装脚本的标准名称。在安装时,它会通过Python分发工具(distuils)进行包的安装。可以通过README.rst(或者README.txt,或者其他合适的名字)为用户提供重要信息。requirements.txt应该包含Python包所需要的依赖包,也就是说,所有这些包都会预先通过pip这样的工具进行安装以保证你的包能正常工作。test-requirements.txt,它应该列出运行测试集所需要的依赖包。最后,docs文件夹应该包括reStructuredText格式的文档,以便能够被Sphinx处理。包中还经常需要包含一些额外的数据,如图片、Shell脚本等。不过,关于这类文件如何存放并没有一个统一的标准。因此放到任何觉得合适的地方都可以。6.项目开始6.2项目结构2023/1/8setup.py是Python安装脚本的标准2023/1/96.3编码风格6.项目开始《PythonEnhancementProposal#8》(8号Python增强提案),它又叫PEP8,是针对Python代码格式而编订的风格指南。尽管可以在保证语法正确的前提下随意编写Python代码,但是,采用一致的风格来书写可以令代码更加易懂、更加易读。采用和其他Python程序员相同的风格来写代码,也可以使项目更利于多人协作。即便代码只会由你自己阅读,但遵循这套风格可以让后续的修改变得容易一些。2023/1/86.3编码风格6.项目开始《Python2023/1/96.项目开始6.3编码风格下面是应该遵守主要的规则:使用space(空格)来表示缩进,而不要用tab(制表符)表示。和语法相关的每一层缩进都用4个空格来表示。每行的字符数不应超过79。采用ASCII或UTF-8编码文件。对于占据多行的长表达式来说,除了首行之外的其余各行,它都应该在通常的缩进级别之上再加4个空格。文件中的函数与类之间应该用两个空行隔开。不要在行尾加分号,也不要用分号将两条命令放在同一行。2023/1/86.项目开始6.3编码风格下面是应该遵守2023/1/96.3编码风格6.项目开始在同一个类中,各方法之间应该用一个空行隔开。在使用下标来获取列表元素、调用函数或给关键字参数赋值的时候,不要在两旁添加空格。为变量赋值的时候,赋值符号的左侧和右侧应该各自写上一个空格,而且只写一个就好。PEP8提倡采用不同的命名风格来编写Python代码中的各个部分,以便在阅读代码时可以根据这些名称看出它们在Python语言中的角色。函数、变量及属性应该用小写字母来拼写,各单词之间用下划线相连,例如,lowercase_underscore。2023/1/86.3编码风格6.项目开始在同一个类中,2023/1/96.项目开始6.3编码风格受保护的实例属性,应该以单个下划线开头。类与异常,应该以每个单词首字母均大写的形式来命名。模块级别的常量,应该全部采用大写字母来拼写,各单词之间以下划线相连,例如,ALL_CAPS。类中的实例方法(instancemethod),应该把首个参数命名为self,以表示该对象自身。类方法(classmethod)的首个参数,应该命名为cls,以表示该类自身。检测somelist是否为[1]或‘hi’等非空值时,也应如此,ifsomelist语句默认会把非空的值判断为True。2023/1/86.项目开始6.3编码风格受保护的实例属2023/1/9第1章Python入门主讲人:2023/1/8第1章Python入门目录2023/1/923.Python可以做些什么4.Python的优点5.Python和其他语言的比较6.项目开始1.Python的发展历程2.为什么使用Python目录2023/1/823.Python可以做些什么4.P2023/1/91.Python的发展历程Python是一种简单易学,功能强大的编程语言。它有高效率的高层数据结构,能够简单、有效地实现面向对象编程。Python语法简单,支持动态输入,是解释型语言。在大多数平台上,对于众多领域,Python都是一个理想的开发语言,特别适合于应用程序的快速开发。2023/1/81.Python的发展历程Python是一种2023/1/91.Python的发展历程目前GuidovanRossum在Google工作,主要从事GAE/Python3.x方面的研究。创始人:GuidovanRossum时间地点:1989年圣诞节期间在阿姆斯特丹创造名字来源:大蟒蛇飞行马戏团的爱好者渊源:从ABC发展而来主要受Modula-3的影响结合了Unixshell和C的习惯2023/1/81.Python的发展历程目前Guidov2023/1/91.Python的发展历程Python面世Python2.0于2000年10月16日发布,主要实现了完整的垃圾回收,并且支持Unicode。Python3.0于2008年12月3日发布,此版不完完全兼容之前的Python源代码。目前使用最广泛的版本是Python3.5,最新的版本是Python3.6.12023/1/81.Python的发展历程Python面世P2023/1/91.Python的发展历程Python的设计哲学:01简单03优雅02明确Python开发者的哲学:“用一种方法,最好是只有一种方法来做一件事”。在设计Python语言时,如果面临多种选择,Python开发者总会拒绝花哨的语法,而选择明确的没有或者很少有歧义的语法。2023/1/81.Python的发展历程Python的设计2023/1/92.为什么使用PythonPacktPublishing是世界上关于编程方面最大的出版商,它在2016年对11000名访客进行了调查,调查内容包括开发者使用的编程语言、喜欢的框架、薪酬信息等几个方面。调查显示,Python和JavaScript是当今最流行的编程语言,而Java紧随其后,排名第三。2023/1/82.为什么使用PythonPacktPu2023/1/92.为什么使用Python2011年1月,Python被TIOBE编程语言排行榜评为2010年度语言。最近几年Python变得越来越流行,在2017年5月TIOBE编程语言排行榜中,Python已处在第四的位置。2023/1/82.为什么使用Python2011年1月,2023/1/92.为什么使用Python2017年5月TIOBE编程语言排行TOP10榜单2023/1/82.为什么使用Python2017年5月T2023/1/93.Python可以做些什么桌面GUI软件开发(wxPython,

PyQT…)网络应用开发(内置模块,Twistd,

Stackless…)2/3D图形处理,游戏开发(PIL,

pyGame…)文档处理,科学计算(moinmoin,

numpy…)Web应用开发(Flask,

Django,Z,OPEQuixote…)移动设备应用开发(PyS60…)数据库开发(支持SQL和NOSQL,

ZODB…)嵌入其它应用(嵌入C/C++,

delphi,调用DLL…)3.1运用领域2023/1/83.Python可以做些什么桌面GUI软件2023/1/93.Python可以做些什么3.2谁在用Python典型几个国外公司:2023/1/83.Python可以做些什么3.2谁在用2023/1/93.Python可以做些什么典型几个国内公司:3.2谁在用Python2023/1/83.Python可以做些什么典型几个国内公2023/1/924.Python的优点免费—Python的使用和分发是完全免费的。可升级—Python提供了基本的开发模块,你可以在它上面开发你的软件,而且当这些需要扩展和增长时,Python的可插入性和模块化结构能使你的项目生机盎然并易于管理。解释性—

Python编写的程序无需编译,可直接从源代码运行程序。易维护

几个月后阅读自己的代码,不会云里雾里。可移植性—由于它的开源本质,Python已经被移植在许多平台上。2023/1/824.Python的优点免费—Pyth2023/1/9面向对象—

Python即支持面向过程的编程也支持面向对象的编程。在“面向过程”的语言中,程序是由过程或仅仅是可重用代码的函数构建起来的。在“面向对象”的语言中,程序是由数据和功能组合而成的对象构建起来的。丰富的库—

Python标准库庞大。可帮助处理各种工作,包括正则表达式、文档生成、单元测试、线程、数据库、网页浏览器、CGI、FTP、电子邮件、XML、XML-RPC、HTML、

WAV文件、密码系统、GUI(图形用户界面)、Tk和其他与系统有关的操作4.Python的优点2023/1/84.Python的优点2023/1/95.Python和其他语言的比较PythonVS

C:Python是动态编译语言,C是静态编辑语言。C中内容管理是由开发者管理,Python中内存问题由Python解释器负责。Python自带数据类型支持库。C中对于混杂数组(Python中得列表)和哈希表(Python中得字典)还未存在标准库。Python不能用来写内核。借助Python语言提供的API,使用C或者C++来对Python进行功能性扩展。2023/1/85.Python和其他语言的比较Pytho2023/1/9PythonVSJava:Python支持面向对象&函数编程方式。java支持面向对象。Python比Java要简单,非常适合与构造快速原型。Python和Java适合多名程序员以渐进方式协同开发大型项目。PythonVSSHELL:Python语法简单,可移植性好。Shell代码重用读低,造成代码量大。Python可以重用代码,提倡简洁的代码设计,高级的数据库结构和模块化组建。5.Python和其他语言的比较2023/1/8PythonVSJava:5.Pyt2023/1/95.Python和其他语言的比较PythonVS

Ruby:Ruby没有Python的简单性。比较复杂的面向对象语法、“块”语法的引入、正则表达式的引入、一些简写标记都增加了语言的复杂性。Python的缩进表达方式比Ruby的Basic的表达方式更让人悦目,Ruby程序满眼的end让人不舒服。当然,Ruby认为end的方式比Python更先进。Ruby还没有Python的“自省”能力,没有从程序文件中生成文档的能力。Ruby还没有国际化的支持,这是因为Ruby的历史比Python要短。2023/1/85.Python和其他语言的比较Pytho2023/1/9PythonVS

PHP:Python的可读性、可维护性比PHP好。PHP这种类C的语法是以大括号划分代码块来确定程序逻辑的,而Python则采用代码缩进的形式。Python是跨平台的,你可以运用Python在Mac、Linux、Windows下;PHP没有这些能力。PHP支持switch和do…while结构,而Python则不支持。5.Python和其他语言的比较2023/1/8PythonVSPHP:5.Pytho2023/1/96.项目开始6.1Python版本差异Python2.x和Python3.x都处在Python社区的积极维护之中。但是Python2.x已经不再进行功能开发,只会进行bug修复、安全增强以及移植等工作,以便使开发者能顺利从Python2.x迁移到Python3.x。Python3.x经常会添加新功能并提供改进,而这些功能与改进不会出现在Python2.x中。所以强烈建议大家使用Python3.x来开发自己的下一个Python项目。2023/1/86.项目开始6.1Python版本差异P2023/1/9Python2.x和Python3.x有一个最大的不同点,那就是语法,例如最简单的print()。如果在Python3.x中输入print('HelloWorld!'),会成功打印。但是如果用Python2.x的print()语法来打印,例如输入print'HelloWorld!',就会报错。6.项目开始6.1Python版本差异—print()2023/1/8Python2.x和Python3.x有2023/1/9Python2.x:>>>x=2,y=3>>>z=x+y>>>printz5Python3.x:>>>x='a'>>>y='b'>>>print(x,y)ab6.项目开始6.1Python版本差异—print()在Python2.x中使用额外的括号也是可以的。但反过来,在Python3.x中想以Python2.x中不带括号的形式调用print函数,则会触发SyntaxError异常。2023/1/8Python2.x:6.项目开始6.12023/1/9Python2.x:>>>print('Hello,World!')('Hello,World!')Python3.x:>>>print'Hello,World!'SyntaxError:Missingparenthesesincallto'print'>>>print('Hello,World!')Hello,World!>>>print(('Hello,World!'))('Hello,World!')6.项目开始6.1Python版本差异—print()2023/1/8Python2.x:6.项目开始6.12023/1/926.项目开始6.1Python版本差异—除法运算Python中的除法有/和//两个运算符。在Python2.x中/除法就跟我们熟悉的Java、C语言差不多一样。整数相除的结果是一个整数,把小数部分完全忽略掉,浮点数除法会保留小数点的部分得到一个浮点数。在Python3.x中/除法不再这么做了,对于整数之间的相除,结果也会是浮点数。Python2.x:>>>5/41>>>5/4.01.25>>>5.0/4.01.252023/1/826.项目开始6.1Python版本差异2023/1/9Python3.x:>>>5/41.25>>>5/4.01.25>>>5.0/4.01.256.项目开始6.1Python版本差异—除法运算

接上一页PPT而对于//除法,这种除法叫作floor除法,会对除法的结果自动进行一个floor操作,在Python2.x和Python3.x中是一致的。2023/1/8Python3.x:6.项目开始6.12023/1/96.项目开始6.1Python版本差异—UnicodePython2.x有ASCIIstr()类型,其中unicode()是单独的且不是byte类型。现在,在Python3.x中,我们最终有了Unicode(utf-8)字符串,以及一个字节类:byte和bytearrays。2023/1/86.项目开始6.1Python版本差异—2023/1/96.项目开始6.1Python版本差异—异常在Python3.x中处理异常也有微小的变化,我们使用as作为关键词。捕获异常的语法由exceptexc,var改为exceptexcasvar。使用语法except(exc1,exc2)asvar可以同时捕获多种类别的异常。在Python2.x中,异常在代码中除了表示程序错误,还经常做一些普通控制结构应该做的事情。在Python3.x中可以看出,设计者让异常变得更加专一,只有在错误发生的情况才能用异常捕获语句来处理。2023/1/86.项目开始6.1Python版本差异—2023/1/96.项目开始6.1Python版本差异—八进制字面量表示在Python3.x中,表示八进制字面量的方式只有一种,就是0o1000。python2.x:>>>0o1000512>>>01000512python3.x:>>>01000SyntaxError:invalidtoken>>>0o10005122023/1/86.项目开始6.1Python版本差异—2023/1/96.项目开始6.1Python版本差异—不等运算符在Python2.x中不等于有两种写法:!=和<>,而在Python3.x中去掉了<>,只有!=一种写法。2023/1/86.项目开始6.1Python版本差异—2023/1/96.项目开始6.1Python版本差异—数据类型Python3.x去除了long类型,现在只有一种整型int,但它的行为就像Python2.x版本的long。新增了bytes类型,对应于Python2.x版本的八位串。2023/1/86.项目开始6.1Python版本差异—2023/1/926.项目开始6.1Python版本差异—面向对象引入抽象基类(AbstraactBaseClasses,ABCs)。容器类和迭代器类被ABCs化,所以cellections模块里的类型比Py2.5多了很多。另外,数值类型也被ABCs化(具体参阅PEP3119和PEP3141)。迭代器的next()方法改名为__next__(),并增加内置函数next(),用以调用迭代器的__next__()方法增加了@abstractmethod和@abstractproperty两个decorator,编写抽象方法(属性)更加方便。2023/1/826.项目开始6.1Python版本差异2023/1/9在Python2.x中xrange()创建迭代对象的用法是非常流行的,比如:for循环或者是列表/集合/字典推导式,这个表现十分像生成器(比如“惰性求值”)。但这里的xrange-iterable是无尽的,这意味着可能在这个xrange上无限迭代。在Python3.x中,range()的实现方式与xrange()函数相同,所以就不存在专用的xrange()(在Python3.x中使用xrange()会触发NameError)。6.项目开始6.1Python版本差异—xrange2023/1/8在Python2.x中xrange()创建2023/1/96.2项目结构我们应该审慎地使用包和层次结构,使得项目结构保持简单。因为过深的层次结构会使得目录导

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论