Python教程.docx

上传人:b****7 文档编号:10148572 上传时间:2023-02-08 格式:DOCX 页数:56 大小:49.19KB
下载 相关 举报
Python教程.docx_第1页
第1页 / 共56页
Python教程.docx_第2页
第2页 / 共56页
Python教程.docx_第3页
第3页 / 共56页
Python教程.docx_第4页
第4页 / 共56页
Python教程.docx_第5页
第5页 / 共56页
点击查看更多>>
下载资源
资源描述

Python教程.docx

《Python教程.docx》由会员分享,可在线阅读,更多相关《Python教程.docx(56页珍藏版)》请在冰豆网上搜索。

Python教程.docx

Python教程

第一章介绍

简介

Python语言是少有的一种可以称得上即简单又功能强大的编程语言。

你将惊喜地发现Python语言是多么地简单,它注重的是如何解决问题而不是编程语言的语法和结构。

Python的官方介绍是:

Python是一种简单易学,功能强大的编程语言,它有高效率的高层数据结构,简单而有效地实现面向对象编程。

Python简洁的语法和对动态输入的支持,再加上解释性语言的本质,使得它在大多数平台上的许多领域都是一个理想的脚本语言,特别适用于快速的应用程序开发。

我会在下一节里详细地讨论Python的这些特点。

注释

Python语言的创造者GuidovanRossum是根据英国广播公司的节目“蟒蛇飞行马戏”命名这个语言的,并非他本人特别喜欢蛇缠起它们的长身躯碾死动物觅食。

Python的特色

简单

Python是一种代表简单主义思想的语言。

阅读一个良好的Python程序就感觉像是在读英语一样,尽管这个英语的要求非常严格!

Python的这种伪代码本质是它最大的优点之一。

它使你能够专注于解决问题而不是去搞明白语言本身。

易学

就如同你即将看到的一样,Python极其容易上手。

前面已经提到了,Python有极其简单的语法。

免费、开源

Python是FLOSS(自由/开放源码软件)之一。

简单地说,你可以自由地发布这个软件的拷贝、阅读它的源代码、对它做改动、把它的一部分用于新的自由软件中。

FLOSS是基于一个团体分享知识的概念。

这是为什么Python如此优秀的原因之一——它是由一群希望看到一个更加优秀的Python的人创造并经常改进着的。

高层语言

当你用Python语言编写程序的时候,你无需考虑诸如如何管理你的程序使用的内存一类的底层细节。

可移植性

由于它的开源本质,Python已经被移植在许多平台上(经过改动使它能够工作在不同平台上)。

如果你小心地避免使用依赖于系统的特性,那么你的所有Python程序无需修改就可以在下述任何平台上面运行。

这些平台包括Linux、Windows、FreeBSD、Macintosh、Solaris、OS/2、Amiga、AROS、AS/400、BeOS、OS/390、z/OS、PalmOS、QNX、VMS、Psion、AcomRISCOS、VxWorks、PlayStation、SharpZaurus、WindowsCE甚至还有PocketPC!

解释性

这一点需要一些解释。

一个用编译性语言比如C或C++写的程序可以从源文件(即C或C++语言)转换到一个你的计算机使用的语言(二进制代码,即0和1)。

这个过程通过编译器和不同的标记、选项完成。

当你运行你的程序的时候,连接/转载器软件把你的程序从硬盘复制到内存中并且运行。

而Python语言写的程序不需要编译成二进制代码。

你可以直接从源代码运行程序。

在计算机内部,Python解释器把源代码转换成称为字节码的中间形式,然后再把它翻译成计算机使用的机器语言并运行。

事实上,由于你不再需要担心如何编译程序,如何确保连接转载正确的库等等,所有这一切使得使用Python更加简单。

由于你只需要把你的Python程序拷贝到另外一台计算机上,它就可以工作了,这也使得你的Python程序更加易于移植。

面向对象

Python即支持面向过程的编程也支持面向对象的编程。

在面向过程的语言中,程序是由过程或仅仅是可重用代码的函数构建起来的。

在面向对象的语言中,程序是由数据和功能组合而成的对象构建起来的。

与其他主要的语言如C++和Java相比,Python以一种非常强大又简单的方式实现面向对象编程。

可扩展性

如果你需要你的一段关键代码运行得更快或者希望某些算法不公开,你可以把你的部分程序用C或C++编写,然后在你的Python程序中使用它们。

可嵌入性

你可以把Python嵌入你的C/C++程序,从而向你的程序用户提供脚本功能。

丰富的库

Python标准库确实很庞大。

它可以帮助你处理各种工作,包括正则表达式、文档生成、单元测试、线程、数据库、网页浏览器、CGI、FTP、电子邮件、XML、XML-RPC、HTML、WAV文件、密码系统、GUI(图形用户界面)、Tk和其他与系统有关的操作。

记住,只要安装了Python,所有这些功能都是可用的。

这被称作Python的“功能齐全”理念。

除了标准库以外,还有许多其他高质量的库,如wxPython、Twisted和Python图像库等等。

概括

Python确实是一种十分精彩又强大的语言。

它合理地结合了高性能与使得编写程序简单有趣的特色。

为什么不使用Perl?

也许你以前并不知道,Perl是另外一种极其流行的开源解释性编程语言。

如果你曾经尝试过用Perl语言编写一个大程序,你一定会自己回答这个问题。

在规模较小的时候,Perl程序是简单的。

它可以胜任于小型的应用程序和脚本,“使工作完成”。

然而,当你想开始写一些大一点的程序的时候,Perl程序就变得不实用了。

我是通过为Yahoo编写大型Perl程序的经验得出这样的总结的!

与Perl相比,Python程序一定会更简单、更清晰、更易于编写,从而也更加易懂、易维护。

我确实也很喜欢Perl,用它来做一些日常的各种事情。

不过当我要写一个程序的时候,我总是想到使用Python,这对我来说已经成了十分自然的事。

Perl已经经历了多次大的修正和改变,遗憾的是,即将发布的Perl6似乎仍然没有在这个方面做什么改进。

我感到Perl唯一也是十分重要的优势是它庞大的CPAN库——综合Perl存档网络。

就如同这个名字所指的意思一样,这是一个巨大的Perl模块集,它大得让人难以置信——你几乎用这些模块在计算机上做任何事情。

Perl的模块比Python多的原因之一是Perl拥有更加悠久的历史。

或许我会在comp.lang.python上建议把Perl模块移植到Python上的计划。

另外,新的Parrot虚拟机按设计可以运行完全重新设计的Perl6也可以运行Python和其他解释性语言如Ruby、PHP和Tcl等等。

这意味着你将来或许可以在Python上使用所有Perl的模块。

这将成为两全其美的事——强大的CPAN库与强大的Python语言结合在一起。

我们将拭目以待。

程序员的话

读一下像ESR这样的超级电脑高手谈Python的话,你会感到十分有意思:

∙EricS.Raymond是《TheCathedralandtheBazaar》的作者、“开放源码”一词的提出人。

他说Python已经成为了他最喜爱的编程语言。

这篇文章也是促使我第一次接触Python的真正原动力。

∙BruceEckel著名的《ThinkinginJava》和《ThinkinginC++》的作者。

他说没有一种语言比得上Python使他的工作效率如此之高。

同时他说Python可能是唯一一种旨在帮助程序员把事情弄得更加简单的语言。

请阅读完整的采访以获得更详细的内容。

∙PeterNorvig是著名的Lisp语言书籍的作者和Google公司的搜索质量主任(感谢GuidovanRossum告诉我这一点)。

他说Python始终是Google的主要部分。

事实上你看一下Google招聘的网页就可以验证这一点。

在那个网页上,Python知识是对软件工程师的一个必需要求。

∙BrucePerens是OpenSource.org和UserLinux项目的一位共同创始人。

UserLinux旨在创造一个可以被多家发行商支持标准的Linux发行版。

Python击败了其它竞争对手如Perl和Ruby成为UserLinux支持的主要编程语言。

第2章安装Python

Linux和BSD用户

如果你正在使用一个Linux的发行版比如Fedora或者Mandrake或者其他(你的选择),或者一个BSD系统比如FreeBSD,那么你可能已经在你的系统里安装了Python。

要测试你是否已经随着你的Linux包安装了Python,你可以打开一个shell程序(就像konsole或gnome-terminal)然后输入如下所示的命令python-V。

$python-V

Python2.3.4

注释

$是shell的提示符。

根据你的操作系统的设置,它可能与你那个不同,因此我只用$符号表示提示符。

如果你看见向上面所示的那样一些版本信息,那么你已经安装了Python了。

如果你得到像这样的消息:

$python-V

bash:

python:

commandnotfound

那么你还没有安装Python。

这几乎不可能,只是极其偶尔才会遇到。

在这种情况下,你有两种方法在你的系统上安装Python。

∙利用你的操作系统附带的包管理软件安装二进制包,比如FedoraLinux的yum、MandrakeLinux的urpmi、DebianLinux的apt-get、FreeBSD的pkg_add等等。

注意,使用这种方法的话,你需要连接因特网。

你也可以从别的地方下载二进制包然后拷贝到你的PC中安装。

∙你可以从源代码编译Python然后安装。

在网站上有编译的指令。

Windows®用户

Windows®用户可以访问Python.org/download,从网站上下载最新的版本(在写本书的时候,最新版本是2.3.4版)。

它的大小大约是9.4MB,与其他大多数语言相比是十分紧凑的。

安装过程与其他Windows软件类似。

提示

即便安装程序为你提供了不检查可选组件的选项,你也不要不作任何检查!

有些组件对你很有用,特别是集成开发环境。

有趣的是,大约70%的Python下载是来自Windows用户的。

当然,这并不能说明问题,因为几乎所有的Linux用户已经在安装系统的时候默认安装了Python。

在Windows命令行中使用Python

如果你想要从Windows命令行调用Python,那么你需要先正确的设置PATH变量。

对于Windows2000、XP、2003,点击控制面板->系统->高级->环境变量。

在“系统变量”表单中点击叫做PATH的变量,然后编辑这个变量,把;C:

\Python23加到它的结尾。

当然,是Python所在的正确目录名。

对于较旧版本的Windows,把下面这行加到文件C:

\AUTOEXEC.BAT中:

PATH=%PATH%;C:

\Python23,然后重新启动系统。

对于WindowsNT,则使用AUTOEXEC.NT文件。

概括

对于Linux系统,很可能你已经在你的系统里安装了Python。

否则,你可以通过你的发行版附带的包管理软件安装Python。

对于Windows系统,安装Python就是下载安装程序然后双击它那么简单。

从现在起,我们将假设你已经在你的系统里安装了Python。

第3章最初的步骤

简介

我们将看一下如何用Python编写运行一个传统的“HelloWorld”程序。

通过它,你将学会如何编写、保存和运行Python程序。

有两种使用Python运行你的程序的方式——使用交互式的带提示符的解释器或使用源文件。

我们将学习这两种方法。

使用带提示符的解释器

在命令行的shell提示符下键入python,启动解释器。

现在输入print'HelloWorld',然后按Enter键。

你应该可以看到输出的单词HelloWorld。

对于Windows用户,只要你正确的设置了PATH变量,你应该可以从命令行启动解释器。

或者你可以选择使用IDLE程序。

IDLE是集成开发环境的缩写。

点击开始->程序->Python2.3->IDLE(PythonGUI)。

Linux用户也可以使用IDLE。

注意,>>>是你键入Python语句的提示符。

例3.1使用带提示符的Python解释器

$python

Python2.3.4(#1,Oct262004,16:

42:

40)

[GCC3.4.220041017(RedHat3.4.2-6.fc3)]onlinux2

Type"help","copyright","credits"or"license"formoreinformation.

>>>print'helloworld'

helloworld

>>>

注意,Python会在下一行立即给出你输出!

你刚才键入的是一句Python语句。

我们使用print(不要惊讶)来打印你提供给它的值。

这里,我们提供的是文本HelloWorld,它被迅速地打印在屏幕上。

如何退出Python提示符

如果你使用的是Linux/BSDshell,那么按Ctrl-d退出提示符。

如果是在Windows命令行中,则按Ctrl-z再按Enter。

使用带提示符的解释器

在命令行的shell提示符下键入python,启动解释器。

现在输入print'HelloWorld',然后按Enter键。

你应该可以看到输出的单词HelloWorld。

对于Windows用户,只要你正确的设置了PATH变量,你应该可以从命令行启动解释器。

或者你可以选择使用IDLE程序。

IDLE是集成开发环境的缩写。

点击开始->程序->Python2.3->IDLE(PythonGUI)。

Linux用户也可以使用IDLE。

注意,>>>是你键入Python语句的提示符。

例3.1使用带提示符的Python解释器

$python

Python2.3.4(#1,Oct262004,16:

42:

40)

[GCC3.4.220041017(RedHat3.4.2-6.fc3)]onlinux2

Type"help","copyright","credits"or"license"formoreinformation.

>>>print'helloworld'

helloworld

>>>

注意,Python会在下一行立即给出你输出!

你刚才键入的是一句Python语句。

我们使用print(不要惊讶)来打印你提供给它的值。

这里,我们提供的是文本HelloWorld,它被迅速地打印在屏幕上。

如何退出Python提示符

如果你使用的是Linux/BSDshell,那么按Ctrl-d退出提示符。

如果是在Windows命令行中,则按Ctrl-z再按Enter。

使用源文件

现在让我们重新开始编程。

当你学习一种新的编程语言的时候,你编写运行的第一个程序通常都是“HelloWorld”程序,这已经成为一种传统了。

在你运行“HelloWorld”程序的时候,它所做的事只是说声:

“HelloWorld”。

正如提出“HelloWorld”程序的SimonCozens[1]所说:

“它是编程之神的传统咒语,可以帮助你更好的学习语言。

启动你选择的编辑器,输入下面这段程序,然后把它保存为helloworld.py。

例3.2使用源文件

#!

/usr/bin/python

#Filename:

helloworld.py

print 'HelloWorld'

(源文件:

code/helloworld.py)

为了运行这个程序,请打开shell(Linux终端或者DOS提示符),然后键入命令pythonhelloworld.py。

如果你使用IDLE,请使用菜单Edit->RunScript或者使用键盘快捷方式Ctrl-F5。

输出如下所示。

输出

$pythonhelloworld.py

HelloWorld

如果你得到的输出与上面所示的一样,那么恭喜!

——你已经成功地运行了你的第一个Python程序。

万一你得到一个错误,那么请确保你键入的程序准确无误,然后再运行一下程序。

注意Python是大小写敏感的,即print与Print不一样——注意前一个是小写p而后一个是大写P。

另外,确保在每一行的开始字符前没有空格或者制表符——我们将在后面讨论为什么这点是重要的。

它如何工作

让我们思考一下这个程序的前两行。

它们被称作注释——任何在#符号右面的内容都是注释。

注释主要作为提供给程序读者的笔记。

Python至少应当有第一行那样的特殊形式的注释。

它被称作组织行——源文件的头两个字符是#!

,后面跟着一个程序。

这行告诉你的Linux/Unix系统当你执行你的程序的时候,它应该运行哪个解释器。

这会在下一节做详细解释。

注意,你总是可以通过直接在命令行指定解释器,从而在任何平台上运行你的程序。

就如同命令pythonhelloworld.py一样。

重要

在你的程序中合理地使用注释以解释一些重要的细节——这将有助于你的程序的读者轻松地理解程序在干什么。

记住,这个读者可能就是6个月以后的你!

跟在注释之后的是一句Python语句——它只是打印文本“HelloWorld”。

print实际上是一个操作符,而“HelloWorld”被称为一个字符串——别担心我们会在后面详细解释这些术语。

可执行的Python程序

这部分内容只对Linux/Unix用户适用,不过Windows用户可能也对程序的第一行比较好奇。

首先我们需要通过chmod命令,给程序可执行的许可,然后运行程序。

$chmoda+xhelloworld.py

$./helloworld.py

HelloWorld

chmod命令用来改变文件的模式,给系统中所有用户这个源文件的执行许可。

然后我们可以直接通过指定源文件的位置来执行程序。

我们使用./来指示程序位于当前目录。

为了更加有趣一些,你可以把你的文件名改成仅仅helloworld,然后运行./helloworld。

这样,这个程序仍然可以工作,因为系统知道它必须用源文件第一行指定的那个解释器来运行程序。

只要知道程序的确切位置,你现在就可以运行程序了——但是如果你希望你的程序能够从各个位置运行呢?

那样的话,你可以把你的程序保存在PATH环境变量中的目录之一。

每当你运行任何程序,系统会查找列在PATH环境变量中的各个目录。

然后运行那个程序。

你只要简单地把这个源文件复制到PATH所列目录之一就可以使你的程序在任何位置都可用了。

$echo$PATH

/opt/mono/bin/:

/usr/local/bin:

/usr/bin:

/bin:

/usr/X11R6/bin:

/home/swaroop/bin

$cphelloworld.py/home/swaroop/bin/helloworld

$helloworld

HelloWorld

我们能够用echo命令来显示PATH变量,用$给变量名加前缀以向shell表示我们需要这个变量的值。

我们看到/home/swaroop/bin是PATH变量中的目录之一。

swaroop是我的系统中使用的用户名。

通常,在你的系统中也会有一个相似的目录。

你也可以把你选择的目录添加到PATH变量中去——这可以通过运行PATH=$PATH:

/home/swaroop/mydir完成,其中“/home/swaroop/mydir”是我想要添加到PATH变量中的目录。

当你想要在任何时间、任何地方运行你的程序的时候,这个方法十分有用。

它就好像创造你自己的指令,如同cd或其他Linux终端或DOS提示符命令那样。

提示

对于Python来说,程序、脚本或者软件都是指同一个东西。

获取帮助

如果你需要某个Python函数或语句的快速信息帮助,那么你可以使用内建的help功能。

尤其在你使用带提示符的命令行的时候,它十分有用。

比如,运行help(str)——这会显示str类的帮助。

str类用于保存你的程序使用的各种文本(字符串)。

类将在后面面向对象编程的章节详细解释。

注释

按q退出帮助。

类似地,你可以获取Python中几乎所有东西的信息。

使用help()去学习更多关于help本身的东西!

如果你想要获取关于如print那样操作符的帮助,那么你需要正确的设置PYTHONDOCS环境变量。

这可以在Linux/Unix中轻松地通过env命令完成。

$envPYTHONDOCS=/usr/share/doc/python-docs-2.3.4/html/python

Python2.3.4(#1,Oct262004,16:

42:

40)

[GCC3.4.220041017(RedHat3.4.2-6.fc3)]onlinux2

Type"help","copyright","credits"or"license"formoreinformation.

>>>help('print')

你应该注意到我特意在“print”上使用了引号,那样Python就可以理解我是希望获取关于“print”的帮助而不是想要它打印东西。

注意,我使用的位置是在FedoraCore3Linux中的位置——它可能在不同的发行版和版本中有所不同。

概括

你现在应该可以方便地编写、保存和运行Python程序了。

既然你是一个Python用户,让我们学习更多Python的概念。

第4章基本概念

字面意义上的常量

一个字面意义上的常量的例子是如同5、1.23、9.25e-3这样的数,或者如同'Thisisastring'、"It'sastring!

"这样的字符串。

它们被称作字面意义上的,因为它们具备字面的意义——你按照它们的字面意义使用它们的值。

数2总是代表它自己,而不会是别的什么东西——它是一个常量,因为不能改变它的值。

因此,所有这些都被称为字面意义上的常量。

在Python中有4种类型的数——整数、长整数、浮点数和复数。

∙2是一个整数的例子。

∙长整数不过是大一些的整数。

∙3.23和52.3E-4是浮点数的例子。

E标记表示10的幂。

在这里,52.3E-4表示52.3*10-4。

∙(-5+4j)和(2.3-4.6j)是复数的例子。

字符串

字符串是字符的序列。

字符串基本上就是一组单词。

我几乎可以保证你在每个Python程序中都要用到字符串,所以请特别留心下面这部分的内容。

下面告诉你如何在Python中使用字符串。

∙使用单引号(')

你可以用单引号指示字符串,就如同'Quotemeonthis'这样。

所有的空白,即空格和制表符都照原样保留。

∙使用双引号(")

在双引号中的字符串与单引号中的字符串的使用完全相同,例如"What'syourname?

"。

∙使用三引号('''或""")

利用三引号,你可以指示一个多行的字符串。

你可以在三引号中自由的使用单引号和双引号。

例如:

'''Thisisamulti-linestring.Thisisthefirstline.

Thisisthesecondline.

"What'syourname?

"Iasked.

Hesaid"Bond,JamesBond."

'''

∙转义符

假设你想要在一个字符串中包含一个单引号('),那么你该怎么指示这个字符串?

例如,这个字符串是What'syourname?

你肯定不会用'What'syourname?

'来指示它,因为Python会弄不明白这个字符串从何处开始,何处结束。

所以,你需要指明单引号而不是字符串的结尾。

可以通过转义符来完成这个任

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1