Python数据分析与实践- 课件 第一章 Python简介_第1页
Python数据分析与实践- 课件 第一章 Python简介_第2页
Python数据分析与实践- 课件 第一章 Python简介_第3页
Python数据分析与实践- 课件 第一章 Python简介_第4页
Python数据分析与实践- 课件 第一章 Python简介_第5页
已阅读5页,还剩47页未读 继续免费阅读

下载本文档

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

文档简介

Python数据分析与实践12023/10/28第一章Python简介本章学习目标:了解python语言发展的历史及其特点深刻了解python2和python3的区别熟练掌握python中的IDLE的编程特点熟练的掌握python的开发环境32023/10/28

Python的作者,荷兰人GuidovonRossum。1982年,Guido从阿姆斯特丹大学获得了数学和计算机硕士学位。然而,尽管他算得上是一位数学家,但他更加享受计算机带来的乐趣。用他的话说,尽管拥有数学和计算机双料硕士,他总趋向于做计算机相关的工作,并热衷于做任何和编程相关的活儿。Python起源与发展

最初的Python完全由Guido本人开发。Python得到Guido同事的欢迎,他们迅速的反馈使用意见,并参与到Python的改进。Guido和一些同事构成Python的核心团队。他们将自己大部分的业余时间用于hackPython。随后,Python拓展到研究所之外。Python将许多机器层面上的细节隐藏,交给编译器处理,并凸显出逻辑层面的编程思考。Python程序员可以花更多的时间用于思考程序的逻辑,而不是具体的实现细节。这一特征吸引了广大的程序员。Python开始流行。

到今天,Python的框架已经确立。Python语言以对象为核心组织代码,支持多种编程范式,采用动态类型,自动进行内存回收。Python支持解释运行,并能调用C库进行拓展。Python有强大的标准库。由于标准库的体系已经稳定,所以Python的生态系统开始拓展到第三方包。这些包,如Django、web.py、wxpython、numpy、matplotlib、PIL,将Python升级成了物种丰富的热带雨林。Python崇尚优美、清晰、简单,是一个优秀并广泛使用的语言。Python在TIOBE排行榜中排行第八,它是Google的第三大开发语言,Dropbox的基础语言,豆瓣的服务器语言。python语言的优点:⑴Python非常简单,适合阅读。阅读一个良好的Python程序就像是在读英语一样,尽管这个英语的要求非常严格。Python的这种伪代码本质是它最大的优点之一,它使用户能够专注于解决问题而不是去搞明白语言本身。⑵易学。python虽然是用c语言写的,但是它摈弃了c中非常复杂的指针,简化了python的语法。⑶Python是FLOSS(自由/开放源码软件)之一。简单地说,用户可以自由地发布这个软件的副本、阅读它的源代码、对它做改动、把它的一部分用于新的自由软件中。72023/10/28⑷可移植性:由于开源本质,Python已经被移植在许多平台上(经过改动使它能够工作在不同平台上)。如果用户小心地避免使用依赖于系统的特性,那么所有的Python程序无需修改就可以在下述任何平台上面运行。这些平台包括Linux、Windows、FreeBSD、Macintosh、Solaris、OS/2以及Google基于linux开发的Android平台!⑸Python解释器把源代码转换成称为字节码的中间形式,然后再把它翻译成计算机使用的机器语言并运行。因此,由于用户不再需要担心如何编译程序,如何确保连接转载正确的库等,所有这一切使得使用Python更加简单。82023/10/28⑹Python既支持面向过程的函数编程,也支持面向对象的抽象编程。在面向过程的语言中,程序是由过程或仅仅是可重用代码的函数构建起来的;在面向对象的语言中,程序是由数据和功能组合而成的对象构建起来的。与其他主要的语言(如C++和Java)相比,Python以一种非常强大又简单的方式实现面向对象编程。⑺可扩展性和可嵌入性:如果用户需要让自己的一段关键代码运行得更快或者希望某些算法不公开,可以把部分程序用C或C++编写,然后在自己的Python程序中使用它们。用户可以把Python嵌入自己的C/C++程序,从而向程序用户提供脚本功能。9⑻Python有很庞大的标准库。它可以帮助用户处理各种工作,包括文档生成、单元测试、线程、数据库、CGI、FTP、电子邮件、XML、XML-RPC、HTML、WAV文件、密码系统、GUI(图形用户界面)、Tk和其他与系统有关的操作。记住,只要安装了Python,所有这些功能都是可用的。除了标准库以外,还有许多其他高质量的库,如wxPython、Twisted和Python图像库等等。102023/10/28python语言的缺点:(2)运行速度:如果有速度要求,用C++改写关键部分吧。不过对于用户而言,机器上的运行速度是可以忽略的。因为用户根本感觉不出来这种速度的差异。(3)Python的开源性使得Python语言不能加密。(4)Python构架选择太多(没有像C#这样的官方.NET构架,也没有像Ruby由于历史较短,构架开发的相对集中)。不过这也从另一个侧面说明,Python比较优秀,吸引的人才多,项目也多。(1)在很多时候不能将Python程序连写成一行,例如“importsys;foriinsys.path:printi”1.1.2Python2与Python3的区别1.在Python3中,print不再是语句,而是函数,比如原来是print'abc'现在是print('abc'),但是在Python2.6以上版本可以使用from__future__importprint_function来实现相同的功能。2.在Python3中,没有旧式类,只有新式类,也就是说不用再像这样classFoobar(object):pass显式地子类化object,但是最好还是加上“.”,主要区别在于old-style是classtype类型,而new-style是type类型。3.原来1/2(两个整数相除)结果是0,现在是0.5了。python2.2+以上都可以使用from__future__importdivision实现改特性,同时注意“//”取代了之前的“/”运算。122023/10/284.新的字符串格式化方法format()取代%。从python2.6以上版本开始在str和unicode中有该方法,同时python3依然支持%算符5.xrange重命名为range,同时更改的还有一系列内置函数及方法,都返回迭代器对象,而不是列表或者元组,比如filter(),map(),dict.items等6.!=取代<>:python2也很少有人用<>,所以不算什么修改。132023/10/288.long重命名为int:python3彻底废弃了long+int(双整数)实现的方法,统一为int,支持高精度整数运算。9.“exceptException,e”变成“except(Exception)ase”:只有python2.5及以下版本不支持该语法。python2.6是支持的.不算新功能。10.exec变成函数,类似print()的变化,之前是语句。142023/10/28(1)主要是类库的变化,组织结构变了一些,但功能没变,例如urlparse→urllib.parse这样的变化。(2)对bytes和原生unicode字符串的支持,删除了unicode对象,str为原生unicode字符串,bytes代替了之前的str,这是最核心的。152023/10/281.2Python的环境搭建1、首先进入网站下载:(/downloads/),进入之后如下图,选择图中红色圈中区域进行下载。162023/10/282、下载完成后如下图所示172023/10/283、双击exe文件进行安装,如下图,并按照圈中区域进行设置,切记要勾选打钩的框,然后再点击Customizeinstallation进入到下一步。184、对于上图中,可以通过Browse进行自定义安装路径,也可以直接点击Install进行安装,点击install后便可以完成安装了。195、然后进入高级系统设置,如下,点击环境变量,然后在环境变量里系统变量中,找到path,选择编辑,在变量值后面添加之前的复制的Python的位置,在这前面加上英文的分号,如下图。206.剩下就是检验Python是否装好。同时按住win键和R键,点击确定,进入命令行;在命令行输入python,出现如下的Python相关信息,就表示装好了Python3.5.1。211.3开始使用PythonIDLE>>>被叫做Python命令提示符(prompt),此时Python在等待你输入代码。你现在可以输入一行Python代码,Python就会执行该代码。这种模式叫做Python交互模式(interactivemode),因为Python在等待你输入代码,然后执行。例如,可以输入一个表达式,让Python进行计算。例如,要计算1+1,可以在命令提示符后面输入1+1,然后按enter:>>>1+1按下enter之后,Python就会输出计算结果,这里是2。要退出Python交互模式,可以在Python命令提示符后,输入exit():>>>exit()也可以输入quit():>>>quit()

1.3.1交互方式221.3开始使用PythonIDLE另外,还可以输入一个EOF(文件尾,endoffile)字符,在Windows上是Ctrl+Z,在Linux上是Ctrl+D。对于以后的代码,如果出现以>>>开头的行,就代表这行代码是在Python交互模式下输入的。在Python交互模式下输入代码和运行.py文件是有区别的。在Python命令行,Python会等待用户一行一行地输入代码;但运行.py文件时用户没有这个机会,而且一般运行完一个.py文件就会立即退出(这样用户就不能看到程序输出了什么)。关于Python交互模式还有更多的细节,这将在以后讨论。1.3.2Python的集成开发环境除了官网中下载的python自带的IDLE之外,还有几款风格功能各异的IDE(集成开发环境)。下面分别介绍。1.3.2Python的集成开发环境1.EclipsewithPyDev:/Eclipse+PyDev插件,很适合开发PythonWeb应用,其特征包括自动代码完成、语法高亮、代码分析、调试器、以及内置的交互浏览器。1.3.2Python的集成开发环境2.KomodoEdit:/komodo-edit/KomodoEdit是一个免费的、开源的、专业的PythonIDE,其特征是非菜单的操作方式,开发高效。1.3.2Python的集成开发环境3.Vim:/download.phpVim是一个简洁、高效的工具,也适合做Python开发。1.3.2Python的集成开发环境4.PyCharmPyCharm是由JetBrains打造的一款PythonIDE。PyCharm具备一般PythonIDE的功能,比如:调试、语法高亮、项目管理、代码跳转、智能提示、自动完成、单元测试、版本控制等。另外,PyCharm还提供了一些很好的功能用于Django开发,同时支持GoogleAppEngine,更酷的是,PyCharm支持IronPython。PyCharm官方下载地址:/pycharm/download/1.3.2Python的集成开发环境4.PyCharm1.3.2Python的集成开发环境5.SublinmeText1.3.2Python的集成开发环境5.SublinmeTextSublimeText具有漂亮的开发界面(见图1.11)和强大的功能,例如代码缩略图、Python的插件和代码段等,还可以自定义键绑定、菜单和工具栏。SublimeText的主要功能包括拼写检查、书签、完整的PythonAPI、Goto功能、即时项目切换、多选择、多窗口等。SublimeText是一个跨平台的编辑器,同时支持Windows、Linux、MacOSX等操作系统。1.3.2Python的集成开发环境5.SublinmeText使用SublimeText2的插件扩展功能,用户可以轻松地打造一款不错的PythonIDE,以下推荐几款插件(用户可以找到更多)。•CodeIntel:自动补全+成员/方法提示(强烈推荐);•SublimeREPL:用于运行和调试一些需要交互的程序;•BracketHighlighter:括号匹配及高亮显示;•SublimeLinter:代码pep8格式检查。321.缩进每级缩进用4个空格;连续行的折叠元素应该对齐。1.5代码风格2.制表符还是空格空格是最优先的缩进方式,当已经使用制表符是,应该保持一致性,继续使用制表符。Python3不允许混合使用制表符和空格来缩进。Python2的代码中混合使用制表符和空格的缩进,应该转化为完全使用空格。3.最大行长度限制所有行最多79个字符。下垂的长块结构限制为更少的文本(文档字符串或注释),行的长度应该限制在72个字符。334.换行应该在二元操作符前面还是后面几十年来推荐的风格是在二元操作符后换行。但这会通过两种方式影响可读性:操作符往往分散在屏幕的不同的列上,并且每个操作符都被移动到远离其操作数。1.5代码风格5.空行用两行空行分割顶层函数和类的定义。类内方法的定义用单个空行分割。额外的空行可被用于(保守的(sparingly))分割一组相关函数(groupsofrelatedfunctions)。在一组相关的单句中间可以省略空行.(例如.一组哑元(asetofdummyimplementations))。在函数中使用空行时,请谨慎的用于表示一个逻辑段落(indicatelogicalsections)。346.源文件编码Python核心发布中的代码应该始终使用UTF-8(或Python2中用ASCII)。文件使用ASCII(Python2中)或UTF-8(Python3中)不应有编码声明。在标准库中,非默认编码仅用于测试目的或注释或文档字符串需要提及包含非ASCII字符的作者名;否则,使用\x,\u,\U,或\N是字符串中包含非ASCII数据的首先方式。1.5代码风格7.导入#通常应该在单独的行中导入(Imports)。importosimport

sys#这样也是可以的fromsubprocessimportPopen,PIPEImports通常被放置在文件的顶部,仅在模块注释和文档字符串之后,在模块的全局变量和常量之前。358.字符串引号Python中,单引号字符串和双引号字符串是一样的,本PEP不建议如此,建议选择一个并坚持下去。当一个字符串包含单引号字符或双引号字符时,使用另一种字符串引号来避免字符串中使用反斜杠。这可以提高可读性。三引号字符串,总是使用双引号字符,与PEP257文档字符串规范保持一致。1.5代码风格361.5代码风格9.空格避免尾随空格。因为它通常是无形的,它可能会让人很困惑:如一个反斜杠,后跟一个空格和一个换行符不算作一行延续标记。有些编辑器不保护它,并且许多项目(如CPython本身)导向钩子,拒绝它。始终在这些二元运算符两边放置一个空格:赋值(=),比较(==,<,>,!=,<>,<=,>=,in,notin,is,isnot),布尔运算(and,or,not)。如果使用了不同优先级的操作符,在低优先级操作符周围增加空格(一个或多个)。不要使用多于一个空格,二元运算符两侧空格数量相等。371.5代码风格10.注释同代码不一致的注释比没注释更差.当代码修改时,始终优先更新注释!注释应该是完整的句子.如果注释是一个短语或句子,首字母应该大写,除非他是一个以小写字母开头的标识符(永远不要修改标识符的大小写)。如果注释很短,最好省略末尾的句号。注释块通常由一个或多个由完整句子构成的段落组成,每个句子都应该以句号结尾。11.注释块注释块通常应用于跟随着一些(或者全部)代码并和这些代码有着相同的缩进层次.注释块中每行以'#'和一个空格开始(除非他是注释内的缩进文本)。注释块内的段落以仅含单个'#'的行分割。12.行内注释行内注释应该谨慎使用。13.文档字符串应该一直遵守在PEP257中编写好的文档字符串(又名"docstrings")的约定,""""""DocumentationStrings--文档化字符;1.5代码风格14.命名约定Python库的命名约定有点混乱,所以我们将永远不能使之变得完全一致---不过还是有公认的命名规范的。15.根本原则用户可见的API的公开部分的名称,应该体现用法而不是实现。1.5代码风格16.描述:命名风格有许多不同的命名风格.以下的有助于辨认正在使用的命名风格,独立于它们的作用。以下的命名风格是众所周知的:•b(单个小写字母)•B(单个大写字母)•小写串如:getname•带下划的小写串如:_getname,lower_case_with_underscores•大写串如:GETNAME•带下划的大写串如:_GETNAME,UPPER_CASE_WITH_UNDERSCORES•CapitalizedWords(首字母大写单词串)(或CapWords,CamelCase/驼峰命名法--这样命名是由于它的字母错落有致的样子而来的.这有时也被当作StudlyCaps。如:GetName。1.5代码风格注意:当CapWords中使用缩写,大写所有的缩写字母。因此HTTPServerError优于HttpServerError。•mixedCase(混合大小写串)(与首字母大写串不同之处在于第一个字符是小写如:getName)•Capitalized_Words_With_Underscores(带下划线的首字母大写串)(丑陋!)1.5代码风格a.应避免的名字永远不要用字符'l'(小写字母el(就是读音,下同)),'O'(大写字母oh),或'I'(大写字母eye)作为单字符的变量名。在某些字体中,这些字符不能与数字1和0分开.当想要使用'l'时,用'L'代替它。b.包和模块名模块应该是简短的,全小写的名字.可以在模块名中使用下划线来提高可读性。Python包名也应该是简短的,全小写的名字,不鼓励使用下划线。当一个用C或C++写的扩展模块有一个伴随的Python模块,这个Python模块提供了一个更高层(例如,更面向对象)的接口时,C/C++模块有一个前导下划线(如:_socket)1.5代码风格c.类名几乎没有例外,类名总是使用首字母大写单词串(CapWords)的约定。d.异常名因为异常应该是一个类,类的规范也适用这里。无论怎样,你应该在异常名中使用后缀"Error"(如果实际是一个错误)。似乎内建(扩展)的模块使用"error"(例如:os.error),而Python模块通常用"Error"(例如:xdrlib.Error)。1.5代码风格e.全局变量名(让我们希望这些变量打算只被用于模块内部)这些约定与那些用于函数的约定差不多。被设计可以通过"fromMimport*"来使用的那些模块,应该使用all机制防止导出全局变量,或使用加前缀的旧规则,在那些不想被导入的全局变量(还有内部函数和类)前加一个下划线。f.函数名函数名应该为小写,可以将单词用下划线分开以增加可读性。mixedCase混合大小写仅被允许用于这种风格已经占优势的上下文(如:threading.py)以便保持向后兼容。1.5代码风格g.函数和方法参数总是使用self做实例方法的第一个参数。总是使用cls做类方法的第一个参数。如果一个函数的参数名与保留关键字冲突,最好是为参数名添加一个后置下划线而不是使用缩写或错误的拼写。因此class_比clss好。(也许使用同义词来避免更好。)。h.方法名和实例变量大体上和函数相同:使用小写单词,必要时用下划线分隔增加可读性.仅为不打算作为类的公共接口的内部方法和实例变量使用一个前导下划线.为了避免和子类命名冲突,使用两个前导下划线调用Python的名称改编规则。Python用类名改编这些名字:如果类Foo有一个属性名为a,通过Foo.a不能访问。(执著的用户可以通过调用Foo._Foo__a来访问。)通常,两个前导下划线仅用来避免与子类的属性名冲突。1.5代码风格i.常量常量通常在模块级别定义,并且所有的字母都是大写,单词用下划线分开。例如:MAX_OVERFLOW和TOTAL。j.继承的设计确定类的方法和实例变量(统称为:“属性”)是否公开。如果有疑问,选择非公开;之后把其变成公开比把一个公开属性改成非公开要容易。公开属性是那些你期望与你的类不相关的客户使用的,根据你的承诺来避免向后不兼容的变更。非公开属性是那些不打算被第三方使用的;你不保证非公开属性不会改变甚至被删除。1.6使用帮助1.PythonManuals自带CHM格式的PythonManuals存放在\Python<x.x>\Doc\目录下。可以在IDLE界面下按F1键或点击help选项下PythonDocs标签打开;也可以在通过“开始→pythonx.x→PythonManuals”打开。2.ModuleDocs包含了python中所有内置的和已经安装的第三方Modules文档信息。单击“开始”→pythonx.x→ModuleDocs,出现pydoc程序界面,用户可以在搜索框直接查找需要的内容。用户也可以点击OpenBrowser建立本地临时的WebServer,浏览网页版的文档信息。需要关闭时,点击“QuitServing”即可。1.6使用帮助2.ModuleDocs利用pydoc手工在指定端口打开WebDocumentationServer,代码为"python-mpydoc-p6789"(表示打开pydoc模块来查看Python文档,并在6789端口上启动WebServer)。然后访问“http://localhost:6789/”,可以看到所有已经安装的Modules文档信息。当需要关闭时,按Ctrl

温馨提示

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

评论

0/150

提交评论