《python3基础教程(DOC65页).doc》由会员分享,可在线阅读,更多相关《python3基础教程(DOC65页).doc(85页珍藏版)》请在三一办公上搜索。
1、Python 基础教程Python是一种解释型、面向对象、动态数据类型的高级程序设计语言。Python由Guido van Rossum于1989年底发明,第一个公开发行版发行于1991年。像Perl语言一样, Python 源代码同样遵循 GPL(GNU General Public License)协议。现在开始学习 Python!谁适合阅读本教程?本教程适合想从零开始学习Python编程语言的开发人员。当然本教程也会对一些模块进行深入,让你更好的了解Python的应用。学习本教程前你需要了解在继续本教程之前,你应该了解一些基本的计算机编程术语。如果你学习过PHP,ASP等编程语言,将有助
2、于你更快的了解Python编程。执行Python程序对于大多数程序语言,第一个入门编程代码便是Hello World!,以下代码为使用Python输出Hello World!:实例(Python 2.0+)#!/usr/bin/pythonprint Hello, World!;运行实例 Python 3.0+版本已经把print作为一个内置函数,正确输出Hello World!代码如下:实例(Python 3.0+)#!/usr/bin/pythonprint(Hello, World!); Python 简介Python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。Py
3、thon 的设计具有很强的可读性,相比其他语言经常使用英文关键字,其他语言的一些标点符号,它具有比其他语言更有特色语法结构。 Python 是一种解释型语言: 这意味着开发过程中没有了编译这个环节。类似于PHP和Perl语言。 Python 是交互式语言: 这意味着,您可以在一个Python提示符,直接互动执行写你的程序。 Python 是面向对象语言: 这意味着Python支持面向对象的风格或代码封装在对象的编程技术。 Python 是初学者的语言:Python 对初级程序员而言,是一种伟大的语言,它支持广泛的应用程序开发,从简单的文字处理到 WWW 浏览器再到游戏。Python 发展历史P
4、ython 是由 Guido van Rossum 在八十年代末和九十年代初,在荷兰国家数学和计算机科学研究所设计出来的。Python 本身也是由诸多其他语言发展而来的,这包括 ABC、Modula-3、C、C+、Algol-68、SmallTalk、Unix shell 和其他的脚本语言等等。像 Perl 语言一样,Python 源代码同样遵循 GPL(GNU General Public License)协议。现在 Python 是由一个核心开发团队在维护,Guido van Rossum 仍然占据着至关重要的作用,指导其进展。Python 特点 1.易于学习:Python有相对较少的关键
5、字,结构简单,和一个明确定义的语法,学习起来更加简单。 2.易于阅读:Python代码定义的更清晰。 3.易于维护:Python的成功在于它的源代码是相当容易维护的。 4.一个广泛的标准库:Python的最大的优势之一是丰富的库,跨平台的,在UNIX,Windows和Macintosh兼容很好。 5.互动模式:互动模式的支持,您可以从终端输入执行代码并获得结果的语言,互动的测试和调试代码片断。 6.可移植:基于其开放源代码的特性,Python已经被移植(也就是使其工作)到许多平台。 7.可扩展:如果你需要一段运行很快的关键代码,或者是想要编写一些不愿开放的算法,你可以使用C或C+完成那部分程序
6、,然后从你的Python程序中调用。 8.数据库:Python提供所有主要的商业数据库的接口。 9.GUI编程:Python支持GUI可以创建和移植到许多系统调用。 10.可嵌入: 你可以将Python嵌入到C/C+程序,让你的程序的用户获得脚本化的能力。Python 环境搭建本章节我们将向大家介绍如何在本地搭建Python开发环境。Python可应用于多平台包括 Linux 和 Mac OS X。你可以通过终端窗口输入 python 命令来查看本地是否已经安装Python以及Python的安装版本。 Unix (Solaris, Linux, FreeBSD, AIX, HP/UX, Sun
7、OS, IRIX, 等等。) Win 9x/NT/2000 Macintosh (Intel, PPC, 68K) OS/2 DOS (多个DOS版本) PalmOS Nokia 移动手机 Windows CE Acorn/RISC OS BeOS Amiga VMS/OpenVMS QNX VxWorks Psion Python 同样可以移植到 Java 和 .NET 虚拟机上。Python下载Python最新源码,二进制文档,新闻资讯等可以在Python的官网查看到:Python官网:http:/www.python.org/你可以在一下链接中下载Python的文档,你可以下载 HTML
8、、PDF 和 PostScript 等格式的文档。Python文档下载地址:www.python.org/doc/Python安装Python已经被移植在许多平台上(经过改动使它能够工作在不同平台上)。您需要下载适用于您使用平台的二进制代码,然后安装Python。如果您平台的二进制代码是不可用的,你需要使用C编译器手动编译源代码。编译的源代码,功能上有更多的选择性, 为python安装提供了更多的灵活性。以下为不同平台上安装Python的方法:Unix & Linux 平台安装 Python:以下为在Unix & Linux 平台上安装 Python 的简单步骤: 打开WEB浏览器访问http
9、:/www.python.org/download/ 选择适用于Unix/Linux的源码压缩包。 下载及解压压缩包。 如果你需要自定义一些选项修改Modules/Setup 执行 ./configure 脚本 make make install执行以上操作后,Python会安装在 /usr/local/bin 目录中,Python库安装在/usr/local/lib/pythonXX,XX为你使用的Python的版本号。Window 平台安装 Python:以下为在 Window 平台上安装 Python 的简单步骤: 打开WEB浏览器访问http:/www.python.org/downl
10、oad/ 在下载列表中选择Window平台安装包,包格式为:python-XYZ.msi 文件 , XYZ 为你要安装的版本号。 要使用安装程序 python-XYZ.msi, Windows系统必须支持Microsoft Installer 2.0搭配使用。只要保存安装文件到本地计算机,然后运行它,看看你的机器支持MSI。Windows XP和更高版本已经有MSI,很多老机器也可以安装MSI。 下载后,双击下载包,进入Python安装向导,安装非常简单,你只需要使用默认的设置一直点击下一步直到安装完成即可。MAC 平台安装 Python:最近的Macs系统都自带有Python环境,你也可以在
11、链接 http:/www.python.org/download/ 上下载最新版安装。环境变量配置程序和可执行文件可以在许多目录,而这些路径很可能不在操作系统提供可执行文件的搜索路径中。path(路径)存储在环境变量中,这是由操作系统维护的一个命名的字符串。这些变量包含可用的命令行解释器和其他程序的信息。Unix或Windows中路径变量为PATH(UNIX区分大小写,Windows不区分大小写)。在Mac OS中,安装程序过程中改变了python的安装路径。如果你需要在其他目录引用Python,你必须在path中添加Python目录。在 Unix/Linux 设置环境变量 在 csh she
12、ll: 输入 setenv PATH $PATH:/usr/local/bin/python , 按下Enter。 在 bash shell (Linux): 输入 export PATH=$PATH:/usr/local/bin/python ,按下Enter。 在 sh 或者 ksh shell: 输入 PATH=$PATH:/usr/local/bin/python , 按下Enter。注意: /usr/local/bin/python 是Python的安装目录。在 Windows 设置环境变量在环境变量中添加Python目录:在命令提示框中(cmd) : 输入path=%path%;C
13、:Python 按下Enter。注意: C:Python 是Python的安装目录。也可以通过以下方式设置: 右键点击计算机,然后点击属性 然后点击高级系统设置 选择系统变量窗口下面的Path,双击即可! 然后在Path行,添加python安装路径即可(我的D:Python32),所以在后面,添加该路径即可。 ps:记住,路径直接用分号;隔开!最后设置成功以后,在cmd命令行,输入命令python,就可以有相关显示。Python 环境变量下面几个重要的环境变量,它应用于Python:变量名描述PYTHONPATHPYTHONPATH是Python搜索路径,默认我们import的模块都会从PYT
14、HONPATH里面寻找。PYTHONSTARTUP Python启动后,先寻找PYTHONSTARTUP环境变量,然后执行此文件中变量指定的执行代码。PYTHONCASEOK 加入PYTHONCASEOK的环境变量, 就会使python导入模块的时候不区分大小写.PYTHONHOME 另一种模块搜索路径。它通常内嵌于的PYTHONSTARTUP或PYTHONPATH目录中,使得两个模块库更容易切换。运行Python有三种方式可以运行Python:1、交互式解释器:你可以通过命令行窗口进入python并开在交互式解释器中开始编写Python代码。你可以在Unix,DOS或任何其他提供了命令行或者
15、shell的系统进行python编码工作。$ python # Unix/Linux或者C:python # Windows/DOS以下为Python命令行参数:选项描述-d在解析时显示调试信息-O生成优化代码 ( .pyo 文件 )-S启动时不引入查找Python路径的位置-V输出Python版本号-X从 1.6版本之后基于内建的异常(仅仅用于字符串)已过时。-c cmd执行 Python 脚本,并将运行结果作为 cmd 字符串。file在给定的python文件执行python脚本。2、命令行脚本在你的应用程序中通过引入解释器可以在命令行中执行Python脚本,如下所示:$ python s
16、cript.py # Unix/Linux或者C:python script.py # Windows/DOS注意:在执行脚本时,请检查脚本是否有可执行权限。3、集成开发环境(IDE:Integrated Development Environment)您可以使用图形用户界面(GUI)环境来编写及运行Python代码。以下推荐各个平台上使用的IDE: Unix: IDLE 是 UNIX 上最早的 Python IDE 。 Windows: PythonWin 是一个 Python 集成开发环境,在许多方面都比 IDE 优秀 Macintosh: Python 的 Mac 可以使用 IDLE I
17、DE,你可以在网站上下载对应MAC的IDLE 。继续下一章之前,请确保您的环境已搭建成功。如果你不能够建立正确的环境,那么你就可以从您的系统管理员的帮助。在以后的章节中给出的例子已在 Python2.7.6 版本测试通过。Python 中文编码前面章节中我们已经学会了如何用 Python 输出 Hello, World!,英文没有问题,但是如果你输出中文字符你好,世界就有可能会碰到中文编码问题。Python 文件中如果未指定编码,在执行过程会出现报错:#!/usr/bin/pythonprint 你好,世界;以上程序执行输出结果为: File test.py, line 2SyntaxErro
18、r: Non-ASCII character xe4 in file test.py on line 2, but no encoding declared; see http:/www.python.org/peps/pep-0263.html for detailsPython中默认的编码格式是 ASCII 格式,在没修改编码格式时无法正确打印汉字,所以在读取中文时会报错。解决方法为只要在文件开头加入 # -*- coding: UTF-8 -*- 或者 #coding=utf-8 就行了。实例(Python 2.0+)#!/usr/bin/python# -*- coding: UTF-
19、8 -*-print 你好,世界; 输出结果为:你好,世界所以如果大家再学习过程中,代码中包含中文,就需要在头部指定编码。注意:Python3.X 源码文件默认使用utf-8编码,所以可以正常解析中文,无需指定 UTF-8 编码。 注意:如果你使用编辑器,同时需要设置好编辑器的编码,如 Pycharm 设置步骤: 进入 file Settings,在输入框搜索 encoding。 找到 Editor File encodings,将 IDE Encoding 和 Project Encoding 设置为utf-8。Python 基础语法Python语言与Perl,C和Java等语言有许多相似之
20、处。但是,也存在一些差异。在本章中我们将来学习Python的基础语法,让你快速学会Python编程。第一个Python程序交互式编程交互式编程不需要创建脚本文件,是通过 Python 解释器的交互模式进来编写代码。linux上你只需要在命令行中输入 Python 命令即可启动交互式编程,提示窗口如下:$ pythonPython 2.7.6 (default, Sep 9 2014, 15:04:36) GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.39) on darwinType help, copyright, credits or l
21、icense for more information. Window上在安装Python时已经已经安装了默认的交互式编程客户端,提示窗口如下:在 python 提示符中输入以下文本信息,然后按 Enter 键查看运行效果: print Hello, Python!;在 Python 2.7.6 版本中,以上实例输出结果如下:Hello, Python!脚本式编程通过脚本参数调用解释器开始执行脚本,直到脚本执行完毕。当脚本执行完成后,解释器不再有效。让我们写一个简单的Python脚本程序。所有Python文件将以.py为扩展名。将以下的源代码拷贝至test.py文件中。print Hello,
22、 Python!;这里,假设你已经设置了Python解释器PATH变量。使用以下命令运行程序:$ python test.py输出结果:Hello, Python!让我们尝试另一种方式来执行Python脚本。修改test.py文件,如下所示:#!/usr/bin/pythonprint Hello, Python!;这里,假定您的Python解释器在/usr/bin目录中,使用以下命令执行脚本:$ chmod +x test.py # 脚本文件添加可执行权限$ ./test.py输出结果:Hello, Python!Python 标识符在python里,标识符有字母、数字、下划线组成。在pyt
23、hon中,所有标识符可以包括英文、数字以及下划线(_),但不能以数字开头。python中的标识符是区分大小写的。以下划线开头的标识符是有特殊意义的。以单下划线开头(_foo)的代表不能直接访问的类属性,需通过类提供的接口进行访问,不能用from xxx import *而导入;以双下划线开头的(_foo)代表类的私有成员;以双下划线开头和结尾的(_foo_)代表python里特殊方法专用的标识,如_init_()代表类的构造函数。Python保留字符下面的列表显示了在Python中的保留字。这些保留字不能用作常数或变数,或任何其他标识符名称。所有Python的关键字只包含小写字母。andexe
24、cnotassertfinallyorbreakforpassclassfromprintcontinueglobalraisedefifreturndelimporttryelifinwhileelseiswith exceptlambdayield行和缩进学习Python与其他语言最大的区别就是,Python的代码块不使用大括号()来控制类,函数以及其他逻辑判断。python最具特色的就是用缩进来写模块。缩进的空白数量是可变的,但是所有代码块语句必须包含相同的缩进空白数量,这个必须严格执行。如下所示:if True: print Trueelse: print False 以下代码将会执行
25、错误:#!/usr/bin/python# -*- coding: UTF-8 -*-# 文件名:test.py if True: print Answer print Trueelse: print Answer # 没有严格缩进,在执行时保持 print False执行以上代码,会出现如下错误提醒:$ python test.py File test.py, line 5 if True: IndentationError: unexpected indentIndentationError: unexpected indent 错误是python编译器是在告诉你Hi,老兄,你的文件里格式
26、不对了,可能是tab和空格没对齐的问题,所有python对格式要求非常严格。如果是 IndentationError: unindent does not match any outer indentation level错误表明,你使用的缩进方式不一致,有的是 tab 键缩进,有的是空格缩进,改为一致即可。因此,在Python的代码块中必须使用相同数目的行首缩进空格数。建议你在每个缩进层次使用 单个制表符 或 两个空格 或 四个空格 , 切记不能混用多行语句Python语句中一般以新行作为为语句的结束符。但是我们可以使用斜杠( )将一行的语句分为多行显示,如下所示:total = item_
27、one + item_two + item_three语句中包含, 或 () 括号就不需要使用多行连接符。如下实例:days = Monday, Tuesday, Wednesday, Thursday, FridayPython 引号Python 接收单引号( ),双引号( ),三引号( ) 来表示字符串,引号的开始与结束必须的相同类型的。 其中三引号可以由多行组成,编写多行文本的快捷语法,常用语文档字符串,在文件的特定地点,被当做注释。word = wordsentence = 这是一个句子。paragraph = 这是一个段落。包含了多个语句Python注释python中单行注释采用 #
28、 开头。#!/usr/bin/python# -*- coding: UTF-8 -*-# 文件名:test.py# 第一个注释print Hello, Python!; # 第二个注释输出结果:Hello, Python!注释可以在语句或表达式行末:name = Madisetti # 这是一个注释python 中多行注释使用三个单引号()或三个双引号()。#!/usr/bin/python# -*- coding: UTF-8 -*-# 文件名:test.py这是多行注释,使用单引号。这是多行注释,使用单引号。这是多行注释,使用单引号。这是多行注释,使用双引号。这是多行注释,使用双引号。这
29、是多行注释,使用双引号。Python空行函数之间或类的方法之间用空行分隔,表示一段新的代码的开始。类和函数入口之间也用一行空行分隔,以突出函数入口的开始。空行与代码缩进不同,空行并不是Python语法的一部分。书写时不插入空行,Python解释器运行也不会出错。但是空行的作用在于分隔两段不同功能或含义的代码,便于日后代码的维护或重构。记住:空行也是程序代码的一部分。等待用户输入下面的程序在按回车键后就会等待用户输入:#!/usr/bin/pythonraw_input(nnPress the enter key to exit.)以上代码中 ,nn在结果输出前会输出两个新的空行。一旦用户按下键
30、时,程序将退出。同一行显示多条语句Python可以在同一行中使用多条语句,语句之间使用分号(;)分割,以下是一个简单的实例:#!/usr/bin/pythonimport sys; x = runoob; sys.stdout.write(x + n)执行以上代码,输入结果为:$ python test.pyrunoob多个语句构成代码组缩进相同的一组语句构成一个代码块,我们称之代码组。像if、while、def和class这样的复合语句,首行以关键字开始,以冒号( : )结束,该行之后的一行或多行代码构成代码组。我们将首行及后面的代码组称为一个子句(clause)。如下实例:if expre
31、ssion : suite elif expression : suite else : suite 命令行参数很多程序可以执行一些操作来查看一些基本信,Python可以使用-h参数查看各参数帮助信息:$ python -h usage: python option . -c cmd | -m mod | file | - arg . Options and arguments (and corresponding environment variables): -c cmd : program passed in as string (terminates option list) -d :
32、 debug output from parser (also PYTHONDEBUG=x) -E : ignore environment variables (such as PYTHONPATH) -h : print this help message and exit etc. 我们在使用脚本形式执行 Python 时,可以接收命令行输入的参数,具体使用可以参照 Python 命令行参数。Python 变量类型变量存储在内存中的值。这就意味着在创建变量时会在内存中开辟一个空间。基于变量的数据类型,解释器会分配指定内存,并决定什么数据可以被存储在内存中。因此,变量可以指定不同的数据类型
33、,这些变量可以存储整数,小数或字符。变量赋值Python 中的变量赋值不需要类型声明。每个变量在内存中创建,都包括变量的标识,名称和数据这些信息。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。等号(=)用来给变量赋值。等号(=)运算符左边是一个变量名,等号(=)运算符右边是存储在变量中的值。例如:#!/usr/bin/python# -*- coding: UTF-8 -*-counter = 100 # 赋值整型变量miles = 1000.0 # 浮点型name = John # 字符串print counterprint milesprint name运行实例 以上实例中,1
34、00,1000.0和John分别赋值给counter,miles,name变量。执行以上程序会输出如下结果:1001000.0John多个变量赋值Python允许你同时为多个变量赋值。例如:a = b = c = 1 以上实例,创建一个整型对象,值为1,三个变量被分配到相同的内存空间上。您也可以为多个对象指定多个变量。例如:a, b, c = 1, 2, john 以上实例,两个整型对象1和2的分配给变量a和b,字符串对象john分配给变量c。标准数据类型在内存中存储的数据可以有多种类型。例如,person.s年龄作为一个数值存储和他或她的地址是字母数字字符存储。Python有一些标准类型用于
35、定义操作上,他们和为他们每个人的存储方法可能。Python有五个标准的数据类型: Numbers(数字) String(字符串) List(列表) Tuple(元组) Dictionary(字典)Python数字数字数据类型用于存储数值。他们是不可改变的数据类型,这意味着改变数字数据类型会分配一个新的对象。当你指定一个值时,Number对象就会被创建:var1 = 1var2 = 10 您也可以使用del语句删除一些对象的引用。del语句的语法是:del var1,var2,var3.,varN 您可以通过使用del语句删除单个或多个对象的引用。例如:del vardel var_a, var
36、_b Python支持四种不同的数字类型: int(有符号整型) long(长整型也可以代表八进制和十六进制) float(浮点型) complex(复数) 实例 一些数值类型的实例:intlongfloatcomplex1051924361L0.03.14j100-0x19323L15.2045.j-7860122L-21.99.322e-36j0800xDEFABCECBDAECBFBAEl32.3+e18.876j-0490535633629843L-90.-.6545+0J-0x260-052318172735L-32.54e1003e+26J0x69-4721885298529L70
37、.2-E124.53e-7j 长整型也可以使用小写L,但是还是建议您使用大写L,避免与数字1混淆。Python使用L来显示长整型。 Python还支持复数,复数由实数部分和虚数部分构成,可以用a + bj,或者complex(a,b)表示, 复数的实部a和虚部b都是浮点型 Python字符串字符串或串(String)是由数字、字母、下划线组成的一串字符。一般记为 :s=a1a2an(n=0)它是编程语言中表示文本的数据类型。 python的字串列表有2种取值顺序: 从左到右索引默认0开始的,最大范围是字符串长度少1 从右到左索引默认-1开始的,最大范围是字符串开头如果你的实要取得一段子串的话,
38、可以用到变量头下标:尾下标,就可以截取相应的字符串,其中下标是从0开始算起,可以是正数或负数,下标可以为空表示取到头或尾。比如:s = ilovepython s1:5的结果是love。当使用以冒号分隔的字符串,python返回一个新的对象,结果包含了以这对偏移标识的连续的内容,左边的开始是包含了下边界。上面的结果包含了s1的值l,而取到的最大范围不包括上边界,就是s5的值p。加号(+)是字符串连接运算符,星号(*)是重复操作。如下实例:#!/usr/bin/python# -*- coding: UTF-8 -*-str = Hello World!print str # 输出完整字符串pr
39、int str0 # 输出字符串中的第一个字符print str2:5 # 输出字符串中第三个至第五个之间的字符串print str2: # 输出从第三个字符开始的字符串print str * 2 # 输出字符串两次print str + TEST # 输出连接的字符串 以上实例输出结果:Hello World!Hllollo World!Hello World!Hello World!Hello World!TESTPython列表List(列表) 是 Python 中使用最频繁的数据类型。列表可以完成大多数集合类的数据结构实现。它支持字符,数字,字符串甚至可以包含列表(所谓嵌套)。列表用
40、标识。是python最通用的复合数据类型。看这段代码就明白。列表中的值得分割也可以用到变量头下标:尾下标,就可以截取相应的列表,从左到右索引默认0开始的,从右到左索引默认-1开始,下标可以为空表示取到头或尾。加号(+)是列表连接运算符,星号(*)是重复操作。如下实例:#!/usr/bin/python# -*- coding: UTF-8 -*-list = abcd, 786 , 2.23, john, 70.2 tinylist = 123, johnprint list # 输出完整列表print list0 # 输出列表的第一个元素print list1:3 # 输出第二个至第三个的元
41、素 print list2: # 输出从第三个开始至列表末尾的所有元素print tinylist * 2 # 输出列表两次print list + tinylist # 打印组合的列表以上实例输出结果:abcd, 786, 2.23, john, 70.2abcd786, 2.232.23, john, 70.2123, john, 123, johnabcd, 786, 2.23, john, 70.2, 123, johnPython元组元组是另一个数据类型,类似于List(列表)。元组用()标识。内部元素用逗号隔开。但是元组不能二次赋值,相当于只读列表。#!/usr/bin/pytho
42、n# -*- coding: UTF-8 -*-tuple = ( abcd, 786 , 2.23, john, 70.2 )tinytuple = (123, john)print tuple # 输出完整元组print tuple0 # 输出元组的第一个元素print tuple1:3 # 输出第二个至第三个的元素 print tuple2: # 输出从第三个开始至列表末尾的所有元素print tinytuple * 2 # 输出元组两次print tuple + tinytuple # 打印组合的元组以上实例输出结果:(abcd, 786, 2.23, john, 70.2)abcd(
43、786, 2.23)(2.23, john, 70.2)(123, john, 123, john)(abcd, 786, 2.23, john, 70.2, 123, john)以下是元组无效的,因为元组是不允许更新的。而列表是允许更新的:#!/usr/bin/python# -*- coding: UTF-8 -*-tuple = ( abcd, 786 , 2.23, john, 70.2 )list = abcd, 786 , 2.23, john, 70.2 tuple2 = 1000 # 元组中是非法应用list2 = 1000 # 列表中是合法应用Python元字典字典(dictionary)是除列表以外python之中最灵活的内置数据结构类型。列表是有序的对象结合,字典是无序的对象集合。 两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。 字典用 标识。字典由索引(key)和它对应的值value组成。#!/usr/bin/python# -*- coding: UTF-8 -*-dict = dictone = This is onedict2 = This is twotinydict = name: john,code:6734, dept: salesprint dictone