导读:Python 简史在正式学习 Python 之前,我们应该对以下内容有所了解。 Python 读音Python(英国发音:/ˈpaɪθən/ 美国发音:/ˈpaɪθɑːn/),是一种面向对象的解释型计算机程序设计语言,由荷兰人 Guido van Rossum 于1989年发明,第一个公开发行版发行于1991年。 Python 命名Python 命名的由来颇具感性色彩,1989年圣诞节期间,在阿姆斯特丹,Guido 为了打发圣诞节的无趣,决心开发一个新的脚本解释程序,作为 ABC 语言的一种继承。之所以选中 Python(意为大蟒蛇)作为该编程语言的名字,是因为他是一个叫 Monty Python 的喜剧团体的爱好者。 Python 特点若有人问我 Python 最大的特点是什么,我会毫不犹豫的告诉他:简单易学,功能强大。作为一款纯粹的自由软件,Python 有很多优点:
Python 发展Python 诞生至今已经成为最受欢迎的程序设计语言之一。自2004年以后,Python 的使用率一直呈线性增长。根据 TIOBE 编程语言社区发布的2018年1月排行榜,Python 已经超过 C# 跃居热门编程语言的第四位。 由于 Python 语言的简洁性、易读性以及可扩展性,在国外用 Python 做科学计算的研究机构日益增多,一些知名大学已经采用 Python 来教授程序设计课程。例如卡耐基梅隆大学的编程基础、麻省理工学院的计算机科学及编程导论就使用 Python 语言讲授。众多开源的科学计算软件包都提供了 Python 的调用接口,例如著名的计算机视觉库 OpenCV、三维可视化库 VTK、医学图像处理库 ITK。而 Python 专用的科学计算扩展库就更多了,例如十分经典的科学计算扩展库:NumPy、SciPy 和 Matplotlib,它们分别为 Python 提供了快速数组处理、数值运算以及绘图功能。因此 Python 语言及其众多的扩展库所构成的开发环境十分适合工程技术、科研人员处理实验数据、制作图表,甚至开发科学计算应用程序。 Python 前景未来是人工智能的时代,有理由相信 Python 将发挥更大的作用。经过多年的演进,人工智能发展进入了新阶段。为抢抓人工智能发展的重大战略机遇:
学习 Python当前,Python 已经成为人工智能领域最流行的编程语言,而人工智能的火热又反过来促进了 Python 的发展。在国家层面力量的大力推动下,Python 普及的速度定将大大加快,无论是作为辅助工具还是跟随时代步伐,学习 Python 都是很有意义的。 两年前,因项目需要,作者首次接触 Python,从此便一发不可收,基于 Python 完成了一系列项目的开发。一路走来,深感书本与实践脱离之痛,市面上种类繁多的编程辅导书,大都力求面面俱到,动辄数百页,难免令初学者望而生畏。鉴于此,作者写了本课程,试图以一种简明的形式,带领读者走近 Python。 第01课:Python 开发环境搭建及预备知识特别说明如果读者已经搭建了 Python 开发环境,可跳过本章第一部分,但需要注意,本课程列举的实例代码中部分有中文注释,有些集成开发环境可能不支持中文注释,因此,运行本课程实例时请注意将注释去掉。另外,如果读者觉得搭建开发环境比较繁琐,可采用 Python 自带的 IDLE 作为开发环境,安装方法请访问:《Python3入门笔记》。 Python 开发环境搭建开发 Python 的 IDE 有很多,本文介绍基于 Eclipse+PyDev+Python 搭建开发环境的方法。
Eclipse 是一款基于 Java 的可扩展开发平台。其官方下载中包括 J2EE 方向版本、Java 方向版本、C/C++ 方向版本、移动应用方向版本等诸多版本。除此之外,Eclipse 还可以通过安装插件的方式进行诸如 Python、Android、PHP 等语言的开发。本文将要介绍的就是使用 Eclipse 与 PyDev 插件,安装 Python 开发环境的方法。
软件下载Eclipse 下载我们可以进入 Eclipse 官网下载界面下载 Eclipse 软件。在该页面,可以看到针对不同开发需求的 Eclipse 版本,本文采用的是 Eclipse IDE for Java and DSL Developers。目前,最新的版本是 Eclipse Oxygen.2 (4.7.2) Release,为2017年10月放出的版本。另外,还需要注意的是,需要根据自己的操作系统选择正确的系统位数(32/64bits)。 PyDev 离线下载我们可以在 PyDev 项目下载页面看到一些有价值的信息:
Eclipse 安装这里要注意,Eclipse 安装需要 Java 环境,如果还没有安装 Java 环境,请先去下载安装 JDK(点击这里)。 Eclipse 实际上是一个基于 OSGI 框架的软件,在 Windows 系统上无需安装,只需要将其解压,双击打开 eclipse.exe 即可。在 Mac OS 上则有所不同,需要双击 .dmg 文件安装。在第一次运行时,会要求你输入工作路径,你可以自定义也可以接受默认路径。 PyDev 插件安装Eclipse 插件的安装方式有离线和在线两种,本文介绍在线安装方法。 打开 Eclipse,选择“Help”->“Install New Software”。在弹出的对话框中,点击 Add 按钮,添加新的安装源,如下图所示。 在 Location 处填写安装源的网址:http://www./updates/(很多博客中写的是http:///updates),这个地址并非一成不变,因此,最好到官网确认一下。确认方法在上面“软件下载”小节中已有说明。 此外,需取一个名字填写在 Name 处,比如我这里写的是 PyDev。把“connect all update sites during install to find required software”的勾选去掉,否则在安装新插件时会联网寻找所有可能的更新站点搜索,导致安装时间不可预估,并可能导致安装失败。确定后可以看到一个 Pending 过程,然后得到如下图所示的插件,一般来说,我们只需选择 PyDev 即可,这里我两个都安装了(不推荐): 勾选后,点击 Next 进行安装。不过,由于网络的原因,这种方法安装 PyDev 极有可能失败,提示网络连接错误等。 Python 安装Python 的安装比较简单,前往 Python 官网下载安装包。进入官网之后,官网会根据你的计算机操作系统推荐 Python 安装包的版本,如下图所示,你可以根据推荐下载最新的安装包,需要注意的是,Python 目前有 Python2 和 Python3 两个大版本,差异显著,本课程基于 Python3 编写,因此,请读者选择 Python3.X 安装包,具体内容安装步骤可参考博文《Python3 入门笔记——Windows 安装与运行》。 PyDev 插件配置安装好 PyDev 插件后,并不能正常使用,还需要配置 Python 的解释器。 打开Eclipse,选择“Window” -> “Preferences”(如果是 Mac,则同时按下 Command 和 创建一个 Python 项目前面就已经配置好了 Python 的开发环境,下面新建一个项目,来测试一下,确实可以运行。 点击“File” -> “New” -> “Other”,找到“PyDev”,选择“PyDev Project”,点击“Next”。取一个项目名称,比如 helloPython,此外,还可以选择 Python 的语言版本和解释器版本,如下图所示: 点击“Finish”,完成项目创建。然后你会进入 PyDev 视图,进行 Python 开发。这里,我们就写一个最简单的程序,进行测试。右键项目的 src 目录,选择“New” -> “PyDev Package”,创建一个 Python 包,此处也命名为 helloPython。再右键该 package,“New” -> “PyDev Module”,此处也命名为 helloPython。双击打开 helloPython.py,添加如下代码。
右键项目,选择“Run As” -> “Python Run”,或 Ctrl+F11 运行项目。此时,可以在下方的 Console 窗口,看到项目的运行结果:hello world!。 Python 预备知识编程语言编程语言(Programming Language),是用来定义计算机程序的形式语言。它是一种被标准化的交流技巧,用来向计算机发出指令。计算机语言让程序员能够准确地定义计算机所需要使用的数据,并精确地定义在不同情况下所应当采取的行动。 解释上面的定义读起来比较晦涩,下面我通俗的解释一下。 在人类发展史上,一般将文字的出现视为文明的标志,无论是汉语,英语还是法语,它们都是人类交流沟通的工具。文字使得人类之间的沟通和交流变得有章可循,极大的提高了信息传播的效率。自计算机诞生之后,人们一直希望给计算机赋予语言的特性,使计算机像人一样的沟通,而编程语言则可看作人与计算机之间“交流沟通”的工具,它使得人类和计算机之间的高效交流得以实现。 高级编程语言在实践中,人们意识到人和计算机直接“交流”相当困难,计算机能够直接理解的语言是0和1构成的机器码,而这种机器码并不符合人类的认知习惯,因此,高级编程语言应运而生。 何为高级呢?指的是符合人类的理解习惯和思维方式,远离计算机底层。高级编程语言(如 Java,Python)使得人们能够以相对容易的方式将期望计算机执行的指令表达成文。但是,这种高级语言写成的“文章”,计算机是无法直接理解的,因此,还需要一个“翻译”,将人们编写的高级语言按照规则翻译成计算机能够理解的机器语言。根据编程语言的不同,这里的“翻译”也有显著区别。关于人与计算机之间的“交流”,简略的示意图如下: 与 Java 和 C++ 差别显著学习过 C/C++、Java 的读者一定还记得定义变量的方法,如下例子,定义 a、b、c、d 四个变量,其数值类型分别为 int、double、long、float,定义变量的时候,我们需要“显式”的声明变量的类型,以便在内存中为该变量开辟空间,不同的数据类型占用的内存空间是不同的,所以必须要声明。
与 C++ 和 Java 不同,Python 中变量没有类型,更谈不上声明变量类型,变量只是对象的引用,而 Python 的所有类型都是对象,包括函数、模块、数字、字符串、列表、元组、字典等等。 如下所示,定义变量 a 并赋值,同一个变量在同一段程序中三次被赋值不同的类型,之所以能如此操作,就是因为变量没有类型,它可以指向任何类型,单从这一点来看,Python 与 C++、Java 差别是很明显的。
执行结果: a= 12 a= ABCDE a= 1+4j 本课程实例的说明为了便于读者更好的理解,本课程列举了很多程序实例,其中部分程序涉及中文注释,另外,为了直观的展现程序执行的结果,课程中的实例大量使用 print 语句将结果打印到控制台,便于读者观察。 关于本课程的实例风格,这里举一个简单的例子:
特别说明上面例子中,有两点需要解释一下。
Python 默认是以 ASCII 作为编码方式的,如果在自己的 Python 源码中包含了中文(或者其他非英语系的语言),即使你把自己编写的 Python 源文件以 UTF-8 格式保存了,运行时仍可能会报错:SyntaxError: Non-ASCII character '\xe5' in file XXX.py on line YY, but no encoding declared; 解决办法:在每一个包含中文或其它语言注释的 Python 脚本文件的第一行,加入以下声明:
“#”表示注解,在代码中输入它的时候,它右边的所有内容都将被忽略,注解是极为有用的,不仅有助于别人理解自己的代码,也可以提示自己。 通过命令运行 Python 脚本上面的例子中,我们运行 Python 脚本都是通过 Eclipse IDE(集成开发环境)完成的,事实上运行程序的方法很多,对于 Python 语言而言,我们可以直接以命令的方式运行。 Windows 系统: 进入 Python 脚本 test.py 所在路径下,键入命令:Python test.py。 注意:Python 首字母大写。 Linux 或 Unix 系统: 进入 Python 脚本 test.py 所在路径下,键入命令:python test.py。 注意:Python 首字母小写。 第02课:数字和运算符数字Python 提供了三种数字类型,即 int(整型),float(浮点型),complex(复数)。
需要注意的是,Python3 已经废弃了 Python2 的 Long(长整型),在 Python3 中,int 的大小没有限制,可以作为 Long 使用。 数字类型转换Python 的三种数字类型可以进行相互转换,转换方式为:数字类型+圆括号,如下实例:
执行结果:
常用的数学函数Python 提供了丰富的数学函数以降低编程实现的难度,本节将介绍一些常用的函数。
执行结果:
运算符计算机的最基本用途之一就是执行数学运算,作为一门计算机语言,Python 也提供了一套丰富的运算符来满足各种运算需求。 Python 运算符大致可分为7种,即算术运算符、比较运算符、赋值运算符、逻辑运算符、位运算符、成员运算符以及身份运算符。 算术运算符对算术运算,大家并不陌生,常用的加减乘除就是算术运算。不过,在编程语言里,算术运算的符号特殊一些,Python 中的算术运算有7种:加(+)、减(-)、乘()、除(/)、取模(%)、幂运算(*)和取整预算(//)。以下通过实例演示算术运算符的用法。
执行结果:
比较运算符比较无处不在,大于、小于、等于、不等于……和 C/C++、Java 等编程语言一样,Python 也提供了6种比较运算符:>(大于),<(小于),==(等于),!=(不等于),>=(大于等于),<=(小于等于)。比较运算的结果是一个布尔值,True 或者 False,如下实例:
执行结果:
赋值运算在前文的实例中已经用到赋值运算,如 X = 25,就是一个最简单的赋值运算,“=”就是最简单的赋值运算符。将简单的赋值运算与算术运算结合,Python 形成了丰富的赋值运算符:+=、-=、=、/=、%=、*=、//=。实例如下:
执行结果:
逻辑运算所谓逻辑运算,就是:与、或、非。Python 中3种逻辑运算符分别为:and(与),or(或),not(非),逻辑运算的结果是布尔值:True 或者 False。
如下实例:
执行结果:
位运算程序中的所有数在计算机内存中都是以二进制的形式储存的。位运算就是直接对整数在内存中的二进制位进行操作。Python 中有6种位运算符:
举个例子:a=21,b=6,将两个数转换为二进制形式进行位运算。
成员运算除了上文介绍的5种运算符,Python 还支持成员运算符。介绍成员运算符之前,我们需要提前了解一个概念:数据结构,如字符串、列表、元组、字典。在接下来的章节中我们将详细介绍这些基础的数据结构。字符串、列表、字典,它们就像一个集合,其中包含若干元素,这些元素就是集合的成员;对于一个给定的元素,它有可能在一个给定的集合中,也可能不在,Python 中采用成员运算符来判断元素是否属于成员,成员运算的结果为布尔值,True 或者 False。 如下实例:
执行结果:
身份运算符身份运算符用于比较两个标识符所引用对象的存储单元,计算结果为布尔值,包含两个运算符:is 和 is not,分别用于判断两个标识符是否引用自一个对象。关于存储单元的比较,涉及到对内存模型的理解,本节不做详述,留到后面章节介绍。 |
|