CDay -5: Python初体验和原始需求 ==================================================================== ``Just use it! don't learn!`` -- 用之,不学! 剧本背景 -------------------------------------------------------------------- 嗯嗯嗯,所谓实例故事,就是设计一个具体情景,让代表读者的初学者,同代表作者的行者沟通,从而完成一件事儿,在过程中引导式的展示给大家Python的乐趣; 当然读者不一定什么都不知道,作者可能也高明不过读者, 但是,有个具体的事,也就好具体的讲起来. 好的,这就开始,依照正统说书的,也得来个定场诗什么的活跃一下气氛,先: 那么... :: 侧有咖啡,后宝石;还是灵蟒最贴心! 最贴心,不费心, 用好还要想清楚. 想清楚,就清楚, 一切清楚才清爽! 要清爽,常重构! 刚刚够用是王道! 人物 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 小白 读者一方,没有或是仅有一点编程体验的好奇宝宝,想快速上手使用Python 解决实际问题 行者 嗯嗯嗯!啄木鸟/CPyUG 等等中国活跃Python社区的那群热心的Python 用户,说话可能有些颠三倒四,但是绝对是好心人们 约定 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 列表 指 ``邮件列表`` -- 一种仅仅通过邮件进行群体异步交流的服务形式,是比BBS 更加古老和有效的沟通方式 .. sidebar:: 详细:: :subtitle: 邮件列表有古老的规范和礼节 - 访问地址: http://www.woodpecker.org.cn/share/classes/050730-CPUG/usMaillist/ - 精简地址: http://bit.ly/43WKcR CPyUG社区有丰富的列表资源 - 访问地址: http://wiki.woodpecker.org.cn/moin/CPUGres - 精简地址: http://bit.ly/vrqUk 小结 指每日故事最后的独立章节,将当日故事情节中涉及的知识点/领域技术 进行集中简述,以便读者明确要点; 练习 指每日故事最后的额外章节,和故事内容可能没有关联的几个小实用问题,因为必须使用前述涉及的知识点/领域技术才可以解决,所以,特别列出,建议读者独立进行尝试,加强相关知识的体验. - 习题解答发布在图书维基: http://wiki.woodpecker.org.cn/moin/ObpLovelyPython/LpyAttAnswerCdays - 精巧地址: http://bit.ly/XzYIX - 用SVN下载: http://openbookproject.googlecode.com/svn/trunk/LovelyPython/exercise/part1-CDays/ 事件 -------------------------------------------------------------------- 小白忽然间厌烦了不断的下载安装,破解,却总是找不到称心的软件的生活: “怒了! 什么破软件这么不好使,还要150$!!! 我!要!自个儿写!” 发动 -------------------------------------------------------------------- 怎么回事儿呢? 小白到列表中一说,原来是买了台刻录机,这一下, eMule 的下载更加是没日没夜了,才一个月刻录出来的光盘就有上百张了,结果想找回一个专辑的MP3,简直不可能了... 想要一种工具:``可以不用插入光盘就可以搜索所有光盘的内容`` 就这么简单的一个愿望,乍就是找不到好用的软件?! Python! ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ OK!你们都说Python 好用,那么来尝试一下吧! 我是菜鸟我怕谁?! 运行环境: - 推荐 ``ActivePython`` ,虽然此乃商业产品,却是一个有自由软件版权保证的完善的Python 开发应用环境,关键是文档及相关模块预设非常齐备; - GNU/Linux 环境中,当然推荐使用原生的 Python.org,主流的自由操作系统发行版都内置了Python 环境,或是对应的软件仓库中都有合适的Python 版本可以选择,安装和使用也非常方便; .. sidebar:: 详细:: :subtitle: PCS3 交互环境之winpy - 包含在 `ActivePython`_ 支行版中,商业公司,但是对自由软件支持良多 - `Python`_.org Python 语言本身的大本营 好了,下载,安装,没什么说的,这再不会,先进行电脑基本操作扫盲,再来学习编程吧... ;-) Hello World! ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 灰常灰常著名的,但凡是编程语言,第一课都要玩的例程,如果你也想看一看Python 的? 图 CDay-5-1 Hello World 示例 attachment:cday-5-hello-world.png 再Show 一个类似的,但是推荐的体验环境 iPython .. sidebar:: 详细:: :subtitle: PCS2 交互环境之iPython http://ipython.scipy.org/ 是个融合了N多Unix Shell 环境特质的Python 交互式命令行环境 ,推荐使用,你会爱上 TAB 键的;-) 图 CDay-5-2 Hello World 示例(iPython) attachment:cday-5-hello-world-ipython.png 是也乎,就是这么简单,告诉Python 打印"Hello World!" 就好. 所以说,对于Python, 勿学,即用就好! 文档 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 但是丰富的文档还是可以安抚我们面对未知的恐惧的*,推荐以下深入阅读资料,但是不推荐现在就全面阅读 * Python Tutorial -- Python 教程中文版本 * 在线访问: http://wiki.woodpecker.org.cn/moin/March_Liu/PyTutorial * 快速地址: http://tinyurl.com/6h2q7g * 是 CPyUG ~ Chinese Python User Group 中国Python用户组的资深专家,刘鑫长期维护的一部基础文档,也是Python 创造者 Guido.van.Rossum 唯一亲笔撰写的技术文档! * ``A Byte Of Python`` -- 简明 Python 教程 * 在线访问: http://www.woodpecker.org.cn/share/doc/abyteofpython_cn/chinese/index.html * 快速地址: http://tinyurl.com/5k8pv5 * 沈洁元 翻译的一篇流传甚广的学习 Python 的小书,从初学者的角度,快速说明了一些关键知识点 * 原作者是印度的一位年青的程序员,大家可以到这本书的网站直接和作者沟通: * http://www.swaroopch.com/byteofpython/ * Python 标准库 中文版 * 在线访问: http://www.woodpecker.org.cn/share/doc/Python/_html/PythonStandardLib/ * 快速地址: http://tinyurl.com/5pmvkn * 由"Python 江湖 QQ 群"共同完成的Python 2.0 内置所有标准模块的说明,是初学者开发过程中必备的参考 * ASPN -- ``Python Reference`` ~ Activestate 公司Python 参考资料汇总: * 在线访问: http://aspn.activestate.com/ASPN/Python/Reference/ * 快速地址: http://tinyurl.com/58t3sl 原始需求 -------------------------------------------------------------------- 嗯嗯嗯!安装好了Python环境,在行者的指点下又收集了一批资料的链接,那么小白想真正开始软件的创造了, 但是,行者又告戒: * '''明晰你的问题,当问题真正得到定义时,问题已经解决了一半''' 1. 因为,程序不过是将人的思想转述为机器可以理解的操作序列而已 1. 对于寻求快速解决问题,而不是研究问题的小白和Pythoner们,精确,恰当的描述问题,就等于写好了程序框架,余下的不过是让程序可以运行罢了 好的,于是小白直觉的将软件需求细化了一下: * '''可以不用插入光盘就可以搜索所有光盘的内容''', 等于说... * 可以将光盘内容索引自动储存到硬盘上 * 可以根据储存到硬盘上的光盘信息进行搜索 仅仅就这两点,也仅此两点的需求,可以?如何?以及怎样通过Python 实现?小白和读者一同期待... 小结 -------------------------------------------------------------------- 作为开始,今天小白决定使用Python 来解决光盘内容管理,这一实际问题; 安装了python 环境,运行了 "Hello World!" 实例. OK!轻松的开始,但是,你知道,你同时也获得了免费的绝对强大的科学计算器嘛? 练习 -------------------------------------------------------------------- .. literalinclude:: example.py :language: python