111 , E 位幻当经me【于-叶作》:T峰冷生, 11+
简明 Python 教程 下一页 简明 Python 教程 Swaroop, C. H. 著 沈洁元 译 www.byteofpython.info 版本:1.20 A Byte of Python Copyright © 2003-2005 Swaroop C H 简明 Python 教程 《简明 Python 教程》为 "A Byte of Python" 的唯一指定简体中文译本,版权 © 2005 沈洁 元 本书依照 创作公用约定(署名-非派生作品-非商业用途) 发布。 概要 无论您刚接触电脑还是一个有经验的程序员,本书都将有助您学习使用Python语言。 目录表 前言 本书的读者 本书的由来 本书目前的状况 官方网站 约定条款 欢迎给我反馈 值得思考的一些东西 1. 介绍 简介 Python的特色 概括 为什么不使用Perl? 程序员的话 2. 安装Python Linux和BSD用户 Windows®用户 概括 3. 最初的步骤 简介 使用带提示符的解释器 挑选一个编辑器 使用源文件 输出 它如何工作 可执行的Python程序 获取帮助 概括 4. 基本概念 字面意义上的常量 数 字符串 变量 标识符的命名 数据类型 对象 输出 它如何工作 逻辑行与物理行 缩进 概括 5. 运算符与表达式 简介 运算符 运算符优先级 计算顺序 结合规律 表达式 使用表达式 概括 6. 控制流 简介 if语句 使用if语句 它如何工作 while语句 使用while语句 for循环 使用for语句 break语句 使用break语句 continue语句 使用continue语句 概括 7. 函数 简介 定义函数 函数形参 使用函数形参 局部变量 使用局部变量 使用global语句 默认参数值 使用默认参数值 关键参数 使用关键参数 return语句 使用字面意义上的语句 DocStrings 使用DocStrings 概括 8. 模块 简介 使用sys模块 字节编译的.pyc文件 from..import语句 模块的__name__ 使用模块的__name__ 制造你自己的模块 创建你自己的模块 from..import dir()函数 使用dir函数 概括 9. 数据结构 简介 列表 对象与类的快速入门 使用列表 元组 使用元组 元组与打印语句 字典 使用字典 序列 使用序列 引用 对象与引用 更多字符串的内容 字符串的方法 概括 10. 解决问题——编写一个Python脚本 问题 解决方案 版本一 版本二 版本三 版本四 进一步优化 软件开发过程 概括 11. 面向对象的编程 简介 self 类 创建一个类 对象的方法 使用对象的方法 __init__方法 使用__init__方法 类与对象的变量 使用类与对象的变量 继承 使用继承 概括 12. 输入/输出 文件 使用文件 储存器 储存与取储存 概括 13. 异常 错误 try..except 处理异常 引发异常 如何引发异常 try..finally 使用finally 概括 14. Python标准库 简介 sys模块 命令行参数 更多sys的内容 os模块 概括 15. 更多Python的内容 特殊的方法 单语句块 列表综合 使用列表综合 在函数中接收元组和列表 lambda形式 使用lambda形式 exec和eval语句 assert语句 repr函数 概括 16. 接下来学习什么? 图形软件 GUI工具概括 探索更多内容 概括 A. 自由/开放源码软件(FLOSS) B. 关于本书 后记 关于作者 关于译者 关于简体中文译本 C. 修订记录 时间表 术语表 表格 5.1 运算符与它们的用法 5.2 运算符优先级 15.1 一些特殊的方法 例子 3.1 使用带提示符的Python解释器 3.2 使用源文件 4.1 使用变量和字面意义上的常量 5.1 使用表达式 6.1 使用if语句 6.2 使用while语句 6.3 使用for语句 6.4 使用break语句 6.5 使用continue语句 7.1 定义函数 7.2 使用函数形参 7.3 使用局部变量 7.4 使用global语句 7.5 使用默认参数值 7.6 使用关键参数 7.7 使用字面意义上的语句 7.8 使用DocStrings 8.1 使用sys模块 8.2 使用模块的__name__ 8.3 如何创建你自己的模块 8.4 使用dir函数 9.1 使用列表 9.2 使用元组 9.3 使用元组输出 9.4 使用字典 9.5 使用序列 9.6 对象与引用 10.1 备份脚本——版本一 10.2 备份脚本——版本二 10.3 备份脚本——版本三(不工作!) 10.4 备份脚本——版本四 11.1 创建一个类 11.2 使用对象的方法 11.3 使用__init__方法 11.4 使用类与对象的变量 11.5 使用继承 12.1 使用文件 12.2 储存与取储存 13.1 处理异常 13.2 如何引发异常 14.1 使用sys.argv 15.1 使用列表综合 15.2 使用lambda形式 下一页 前言
简明Python教程 前言 上一页 本书的读者 下一页 前言 目录表 本书的读者 本书的由来 本书且前的状况 官方网站 约定条款 反馈 值得思考的一些东西 Pyho语言可能是第一种即简单又功能强大的编程语言。它不仅适合于初学者,也适合于专业 人员使用,更加重要的是,用Pyho编程是一种愉快的事。本身将帮助你学习这个奇妙的语 言,并且向你展示如何即快捷又方便地完成任务一一真正意义上“为编程问题提供的完美解决 方案!” 本书的读者 本书可以作为Pyho编程语言的一本指南或者教程。它主要是为新手而设计,不过对于有经验 的程序员来说,它同样有用。 即便你对计算机的了解只是如何在计算机上保存文本文件,你都可以通过本书学习Python。 如 果你有编程经验,你也可以使用本书学习Python。 如果你以前有编程经验,那么你将会对Pyho语言和其他你所钟爱的编程语言之间的区别感兴 趣。对此我为你指出了许多这样的区别。顺便提醒你,Python将很快成为你最喜欢的编程语 言! 上一页 上一级 下一页 简明Python教程 首页 本书的由来
简明 Python 教程 前言 上一页 本书的读者 下一页 前言 目录表 本书的读者 本书的由来 本书目前的状况 官方网站 约定条款 反馈 值得思考的一些东西 Python语言可能是第一种即简单又功能强大的编程语言。它不仅适合于初学者,也适合于专业 人员使用,更加重要的是,用Python编程是一种愉快的事。本身将帮助你学习这个奇妙的语 言,并且向你展示如何即快捷又方便地完成任务——真正意义上“为编程问题提供的完美解决 方案!” 本书的读者 本书可以作为Python编程语言的一本指南或者教程。它主要是为新手而设计,不过对于有经验 的程序员来说,它同样有用。 即便你对计算机的了解只是如何在计算机上保存文本文件,你都可以通过本书学习Python。如 果你有编程经验,你也可以使用本书学习Python。 如果你以前有编程经验,那么你将会对Python语言和其他你所钟爱的编程语言之间的区别感兴 趣。对此我为你指出了许多这样的区别。顺便提醒你,Python将很快成为你最喜欢的编程语 言! 上一页 上一级 下一页 简明 Python 教程 首页 本书的由来
简明Python教程 前言 上一页 本书的由来 下一页 本书的由来 我最初接触Pythonz是当我需要为我的软件钻石写一个方便安装过程的安装程序的时候。我得在 Pythoni和Per语言中选择一个绑定Q库。我在网上做了一些研究,偶然发现了一篇文章。那是 Eric S.Raym ond(著名的电脑高手)谈Python如何成为他最喜欢地编程语言的一篇文章。我同 时发现PyQ绑定与PerQ相比要出色得多,所以我选择了Python语言。 之后我开始寻找一本关于Python的优秀书籍。我竟然找不到!虽然我找到了一些0Rey的书, 不过它们不是太贵就是如同一本参考手册而不是一本指南。我最后使用了Pyho附带的文档, 不过它太简略了。那个文档确实很好的给出了Pyho的概念,不过不够全面。尽管最后我根据 我以前得编程经验掌握了那个文档,不过我觉得它完全不适合于新手。 大约在我首次使用Python语言的六个月之后,我安装了那时最新的Red H at9.0 Linux.。在我玩弄 KW ord)应用程序的时候,我突然想写一点关于Python的东西。很快我就写了30多页,然后我开 始认真地想办法把它变成一本完整的书。经过多次的改进和重写,它终于成为了一本有用的 完整的Python语言学习指南。我把本书贡献给开源软件者们。 本书来自于我个人学习Python的笔记,不过我尽力让它更加适合别人的口味。 在开源精神的鼓舞下,我收到了许多建设性的建议和批评以及来自热心读者的反馈,它们使这 本书变得更加出色。 上一页 上一级 下一页 本书的读者 首页 本书目前的状况
简明 Python 教程 前言 上一页 本书的由来 下一页 本书的由来 我最初接触Python是当我需要为我的软件钻石写一个方便安装过程的安装程序的时候。我得在 Python和Perl语言中选择一个绑定Qt库。我在网上做了一些研究,偶然发现了一篇文章。那是 Eric S. Raymond(著名的电脑高手)谈Python如何成为他最喜欢地编程语言的一篇文章。我同 时发现PyQt绑定与Perl-Qt相比要出色得多,所以我选择了Python语言。 之后我开始寻找一本关于Python的优秀书籍。我竟然找不到!虽然我找到了一些O'Reilly的书, 不过它们不是太贵就是如同一本参考手册而不是一本指南。我最后使用了Python附带的文档, 不过它太简略了。那个文档确实很好的给出了Python的概念,不过不够全面。尽管最后我根据 我以前得编程经验掌握了那个文档,不过我觉得它完全不适合于新手。 大约在我首次使用Python语言的六个月之后,我安装了那时最新的Red Hat 9.0 Linux。在我玩弄 KWord应用程序的时候,我突然想写一点关于Python的东西。很快我就写了30多页,然后我开 始认真地想办法把它变成一本完整的书。经过 多次 的改进和重写,它终于成为了一本有用的 完整的Python语言学习指南。我把本书贡献给开源软件者们。 本书来自于我个人学习Python的笔记,不过我尽力让它更加适合别人的口味。 在开源精神的鼓舞下,我收到了许多建设性的建议和批评以及来自热心读者的反馈,它们使这 本书变得更加出色。 上一页 上一级 下一页 本书的读者 首页 本书目前的状况
简明Python教程 前言 上一页 本书目前的状况 下一页 本书目前的状况 本书目前仍然在进一步完善中。许多章节已经频繁地做了修改。然而本书已经十分成熟了,你 一定可以很容易地通过它学习Python.。如果你觉得本书中有什么错误或者难懂的地方,请告诉 我。 本书将来计划增加更多的章节,包括w xPython,Tw isted,有可能的话甚至还有Boa C onstructor。 上一页 上一级 下一页 本书的由来 首页 官方网站
简明 Python 教程 前言 上一页 本书目前的状况 下一页 本书目前的状况 本书目前仍然在进一步完善中。许多章节已经频繁地做了修改。然而本书已经十分成熟了,你 一定可以很容易地通过它学习Python。如果你觉得本书中有什么错误或者难懂的地方,请告诉 我。 本书将来计划增加更多的章节,包括wxPython,Twisted,有可能的话甚至还有Boa Constructor。 上一页 上一级 下一页 本书的由来 首页 官方网站
简明Python教程 前言 上一页 官方网站 下一页 官方网站 本书的官方网站是www.by teo fpy thon.inf6。你可以在这个网站上在线阅读本书,也可以下载本 书的最新版本或给我反馈。 上一页 上一级 下一页 本书目前的状况 首页 约定条款
简明 Python 教程 前言 上一页 官方网站 下一页 官方网站 本书的官方网站是www.byteofpython.info。你可以在这个网站上在线阅读本书,也可以下载本 书的最新版本或给我反馈。 上一页 上一级 下一页 本书目前的状况 首页 约定条款
简明Python教程 前言 上一页 约定条款 下一页 约定条款 本书(原版)依照创作共用约定(署名非商业作品保持一致)发布。简单地说,你只要署上 我的名字,就可以免费复制、分发和展示本书。未得到我的允许,你禁止把本书用于商业目 的。你在修改本书的时候,必须清楚地标明所有做了改动的地方,你发布修改后的作品时也必 须遵照与本书相同的约定。 请访问创作公用约定的网站浏览约定全文,或者查看一个简单易懂的约定描述。那里还有一个 连环画似的约定条款的解释。 上一页 上一级 下一页 官方网站 首页 反馈
简明 Python 教程 前言 上一页 约定条款 下一页 约定条款 本书(原版)依照创作共用约定(署名-非商业作品-保持一致)发布。简单地说,你只要署上 我的名字,就可以免费复制、分发和展示本书。未得到我的允许,你禁止把本书用于商业目 的。你在修改本书的时候,必须清楚地标明所有做了改动的地方,你发布修改后的作品时也必 须遵照与本书相同的约定。 请访问创作公用约定的网站浏览约定全文,或者查看一个简单易懂的约定描述。那里还有一个 连环画似的约定条款的解释。 上一页 上一级 下一页 官方网站 首页 反馈
简明Python教程 前言 上一页 反馈 下一页 反馈 我尽了很大的力让这本书即生动又尽可能的准确。然而,如果你找到任何不太令你满意的地方 或者错误,或者是需要改进的地方,请告诉我以便我改正它们。你可以把它们通过 sw aroop@byteofpython.info发送给我。 上一页 上一级 下一页 约定条款 首页 值得思考的一些 东西
简明 Python 教程 前言 上一页 反馈 下一页 反馈 我尽了很大的力让这本书即生动又尽可能的准确。然而,如果你找到任何不太令你满意的地方 或者错误,或者是需要改进的地方,请告诉我以便我改正它们。你可以把它们通过 swaroop@byteofpython.info发送给我。 上一页 上一级 下一页 约定条款 首页 值得思考的一些 东西
简明Python教程 前言 上一页 值得思考的一些东西 下一页 值得思考的一些东西 有两种方式构建软件设计:一种是把软件做得很简单以至于明显找不到缺陷;另 一种是把它做得很复杂以至于找不到明显的缺陷。 -C.A.R.H oare 获得人生中的成功需要的专注与坚持不解多过天才与机会。 ——C.W.W endte 上一页 上一级 下一页 反馈 首页 第1章介绍
简明 Python 教程 前言 上一页 值得思考的一些东西 下一页 值得思考的一些东西 有两种方式构建软件设计:一种是把软件做得很简单以至于明显找不到缺陷;另 一种是把它做得很复杂以至于找不到明显的缺陷。 ——C.A.R. Hoare 获得人生中的成功需要的专注与坚持不懈多过天才与机会。 ——C.W. Wendte 上一页 上一级 下一页 反馈 首页 第1章 介绍
简明Python教程 第1章介绍 上一页 简介 下一页 第1章介绍 目录表 简介 Python的特色 概括 为什么不使用Perl? 程序员的话 简介 Python语言是少有的一种可以称得上即简单又功能强大的编程语言。你将惊喜地发现Python语 言是多么地简单,它注重的是如何解决问题而不是编程语言的语法和结构。 Python的官方介绍是: Python是一种简单易学,功能强大的编程语言,它有高效率的高层数据结构,简 单而有效地实现面向对象编程。Python简洁的语法和对动态输入的支持,再加上 解释性语言的本质,使得它在大多数平台上的许多领域都是一个理想的脚本语 言,特别适用于快速的应用程序开发。 我会在下一节里详细地讨论Python的这些特点。 注释 Python语言的创造者G uido van Rossum是根据英国广播公司的节目“蟒蛇飞行马戏”命名这个 语言的,并非他本人特别喜欢蛇缠起它们的长身躯碾死动物觅食。 上一页 上一级 下一页 值得思考的一些 东西 首页 Python的特色
简明 Python 教程 第1章 介绍 上一页 简介 下一页 第1章 介绍 目录表 简介 Python的特色 概括 为什么不使用Perl? 程序员的话 简介 Python语言是少有的一种可以称得上即简单又功能强大的编程语言。你将惊喜地发现Python语 言是多么地简单,它注重的是如何解决问题而不是编程语言的语法和结构。 Python的官方介绍是: Python是一种简单易学,功能强大的编程语言,它有高效率的高层数据结构,简 单而有效地实现面向对象编程。Python简洁的语法和对动态输入的支持,再加上 解释性语言的本质,使得它在大多数平台上的许多领域都是一个理想的脚本语 言,特别适用于快速的应用程序开发。 我会在下一节里详细地讨论Python的这些特点。 注释 Python语言的创造者Guido van Rossum是根据英国广播公司的节目“蟒蛇飞行马戏”命名这个 语言的,并非他本人特别喜欢蛇缠起它们的长身躯碾死动物觅食。 上一页 上一级 下一页 值得思考的一些 东西 首页 Python的特色
简明Python教程 第1章介绍 上一页 Python的特色 下一页 Python的特色 简单 Python是一种代表简单主义思想的语言。阅读一个良好的Python程序就感觉像是在读英 语一样,尽管这个英语的要求非常严格!Pyho的这种伪代码本质是它最大的优点之 一。它使你能够专注于解决问题而不是去搞明白语言本身。 易学 就如同你即将看到的一样,Python极其容易上手。前面已经提到了,Python有极其简单 的语法。 免费、开源 Python是FL0SS(自由开放源码软件)之一。简单地说,你可以自由地发布这个软件的 拷贝、阅读它的源代码、对它做改动、把它的一部分用于新的自由软件中。FL0SS是基 于一个团体分享知识的概念。这是为什么Pytho如此优秀的原因之一 一它是由一群希 望看到一个更加优秀的Python的人创造并经常改进着的。 高层语言 当你用Pyho语言编写程序的时候,你无需考虑诸如如何管理你的程序使用的内存一类 的底层细节。 可移植性 由于它的开源本质,Pyho已经被移植在许多平台上(经过改动使它能够工作在不同平 台上)。如果你小心地避免使用依赖于系统的特性,那么你的所有Python程序无需修改 就可以在下述任何平台上面运行。 这些平台包括Linux、W indow s、FreeBSD、M acintosh、Solaris、0S2、Am iga、AR0S、 AS/400、Be0S、0S/390、z0、Pan0S、QNX、VMS、PsDn、A com R ISC0S、 V xW orks、PlayStation、Sharp Zaurus、W indow sCE甚至还有PocketPC! 解释性 这一点需要一些解释。 一个用编译性语言比如C或C++写的程序可以从源文件(即C或C++语言)转换到一个你 的计算机使用的语言(二进制代码,即0和1)。这个过程通过编译器和不同的标记、选 项完成。当你运行你的程序的时候,连接转载器软件把你的程序从硬盘复制到内存中 并且运行。 而Pyho语言写的程序不需要编译成二进制代码。你可以直接从源代码运行程序。在 计算机内部,Pythoni解释器把源代码转换成称为字节码的中间形式,然后再把它翻译成 计算机使用的机器语言并运行。事实上,由于你不再需要担心如何编译程序,如何确保 连接转载正确的库等等,所有这一切使得使用Pyho更加简单。由于你只需要把你的 Pythoni程序拷贝到另外一台计算机上,它就可以工作了,这也使得你的Pythoni程序更加 易于移植。 面向对象 Pyho即支持面向过程的编程也支持面向对象的编程。在面向过程的语言中,程序是 由过程或仅仅是可重用代码的函数构建起来的。在面向对象的语言中,程序是由数据 和功能组合而成的对象构建起来的。与其他主要的语言如C++和ava相比,Python以一 种非常强大又简单的方式实现面向对象编程。 可扩展性 如果你需要你的一段关键代码运行得更快或者希望某些算法不公开,你可以把你的部分 程序用C或C++编写,然后在你的Python程序中使用它们。 可嵌入性 你可以把Python嵌入你的CC++程序,从而向你的程序用户提供脚本功能。 丰富的库 Pyho标准库确实很庞大。它可以帮助你处理各种工作,包括正则表达式、文档生成、 单元测试、线程、数据库、网页浏览器、CGI、FTP、电子邮件、XML、XM L-RPC、 HTML、WAV文件、密码系统、GUI(图形用户界面)、Tk和其他与系统有关的操作。 记住,只要安装了Python,所有这些功能都是可用的。这被称作Python的“功能齐 全”理念。 除了标准库以外,还有许多其他高质量的库,如w xPython、Tw isted和Python图像库等 等。 概括 Pyho确实是一种十分精彩又强大的语言。它合理地结合了高性能与使得编写程序简单有趣的 特色。 上一页 上一级 下一页 简介 首页 为什么不使用 Perl?
简明 Python 教程 第1章 介绍 上一页 Python的特色 下一页 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、Palm OS、QNX、VMS、Psion、Acom RISC OS、 VxWorks、PlayStation、Sharp Zaurus、Windows CE甚至还有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?