status

校对

ZoomQuiet; 100%

CDay -5 Python初体验和原始需求

Just use it! don't learn! -- 用之,不学!

剧本背景

嗯嗯嗯,所谓实例故事,就是设计一个具体情景,让代表读者的初学者,同代表作者的行者沟通,从而完成一件事儿,在过程中引导式的展示给大家Python的乐趣;

当然读者不一定什么都不知道,作者可能也高明不过读者, 但是,有个具体的事,也就好具体的讲起来.

好的,这就开始,依照正统说书的,也得来个定场诗什么的活跃一下气氛,先:

那么...

    侧有咖啡,后宝石;还是灵蟒最贴心!
    最贴心,不费心, 用好还要想清楚.
    想清楚,就清楚, 一切清楚才清爽!
    要清爽,常重构! 刚刚够用是王道!

人物

小白
  • 读者一方,没有或是仅有一点编程体验的好奇宝宝,想快速上手使用Python 解决实际问题
行者
  • 嗯嗯嗯!啄木鸟/CPyUG 等等中国活跃Python社区的那群热心的Python 用户,说话可能有些颠三倒四,但是绝对是好心人们

约定

列表
  • 邮件列表 -- 一种仅仅通过邮件进行群体异步交流的服务形式,是比BBS 更加古老和有效的沟通方式

详细:: 
邮件列表有古老的规范和礼节
访问地址: 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

小结
  • 指每日故事最后的独立章节,将当日故事情节中涉及的知识点/领域技术 进行集中简述,以便读者明确要点;
练习
  • 指每日故事最后的额外章节,和故事内容可能没有关联的几个小实用问题,因为必须使用前述涉及的知识点/领域技术才可以解决,所以,特别列出,建议读者独立进行尝试,加强相关知识的体验.

事件

小白忽然间厌烦了不断的下载安装,破解,却总是找不到称心的软件的生活: “怒了! 什么破软件这么不好使,还要150$!!! 我!要!自个儿写!”

发动

怎么回事儿呢? 小白到列表中一说,原来是买了台刻录机,这一下, eMule 的下载更加是没日没夜了,才一个月刻录出来的光盘就有上百张了,结果想找回一个专辑的MP3,简直不可能了...

想要一种工具:可以不用插入光盘就可以搜索所有光盘的内容

就这么简单的一个愿望,乍就是找不到好用的软件?!

Python!

OK!你们都说Python 好用,那么来尝试一下吧! 我是菜鸟我怕谁?!

运行环境
  • 推荐 ActivePython ,虽然此乃商业产品,却是一个有自由软件版权保证的完善的Python 开发应用环境,关键是文档及相关模块预设非常齐备; GNU/Linux 环境中,当然推荐使用原生的 Python.org,主流的自由操作系统发行版都内置了Python 环境,或是对应的软件仓库中都有合适的Python 版本可以选择,安装和使用也非常方便;

详细: 
PCS3 交互环境之winpy 
含有关于ActivePython的简介
http://www.activestate.com/Products/ActivePython/
商业公司,但是对自由软件支持良多

Python.org
http://www.python.org/download/
Python 语言本身的大本营

好了,下载,安装,没什么说的,这再不会,先进行电脑基本操作扫盲,再来学习编程吧... ;-)

Hello World!

灰常灰常著名的,但凡是编程语言,第一课都要玩的例程,如果你也想看一看Python 的?

图 CDay-5-1 Hello World 示例

再Show 一个类似的,但是推荐的体验环境 iPython

详细:: 
PCS2 交互环境之iPython
http://ipython.scipy.org/
是个融合了N多Unix Shell 环境特质的Python 交互式命令行环境
,推荐使用,你会爱上 TAB 键的;-)

图 CDay-5-2 Hello World 示例(iPython)

是也乎,就是这么简单,告诉Python 打印"Hello World!" 就好.

所以说,对于Python, 勿学,即用就好!

文档

但是丰富的文档还是可以安抚我们面对未知的恐惧的*,推荐以下深入阅读资料,但是不推荐现在就全面阅读

原始需求

嗯嗯嗯!安装好了Python环境,在行者的指点下又收集了一批资料的链接,那么小白想真正开始软件的创造了, 但是,行者又告戒:

  • 明晰你的问题,当问题真正得到定义时,问题已经解决了一半

    1. 因为,程序不过是将人的思想转述为机器可以理解的操作序列而已
    2. 对于寻求快速解决问题,而不是研究问题的小白和Pythoner们,精确,恰当的描述问题,就等于写好了程序框架,余下的不过是让程序可以运行罢了

好的,于是小白直觉的将软件需求细化了一下:

  • 可以不用插入光盘就可以搜索所有光盘的内容, 等于说...

    • 可以将光盘内容索引自动储存到硬盘上
    • 可以根据储存到硬盘上的光盘信息进行搜索

仅仅就这两点,也仅此两点的需求,可以?如何?以及怎样通过Python 实现?小白和读者一同期待...

小结

作为开始,今天小白决定使用Python 来解决光盘内容管理,这一实际问题; 安装了python 环境,运行了 "Hello World!" 实例.

OK!轻松的开始,但是,你知道,你同时也获得了免费的绝对强大的科学计算器嘛?

练习

  • (1) 计算今年是闰年嘛?判断闰年条件, 满足年份模400为0, 或者模4为0但模100不为0.
  • (2) 利用python作为科学计算器.熟悉Python中的常用运算符,并分别求出:
    1. 12*34+78-132/6

    2. (12*(34+78)-132)/6、(86/40)**5 并利用math模块进行数学计算,分别求出:

      1. 145/23的余数
      2. 0.5的sin和cos值(注意sin和cos中参数是弧度制表示) 提醒:可通过import math; help("math")查看math帮助.
  • (3) 找出0~100之间的所有素数.

-- ZoomQuiet 2007-02-20 06:12:54

Name Password4deL
119   计算润年给个答案噻,好像有几个条件阿!
2008-07-16 00:01:26
119   (86/40)**5 我多作了这个练习!我是小白。终于得到2的5次方了
2008-07-16 00:07:23
119   求余的例子不好,应该用一眼就知道答案的,这样才叫验证心中所想
7%6  76%25 明白多了。
2008-07-16 00:11:30
119   help(math) 报错
要现import math 小白不知道阿!终于看见了帮助,泪流满面阿!
2008-07-16 00:15:46
119   >>> math.cos(math.pi)
-1.0
>>> math.cos(13*math.pi)
-1.0
>>>
>>> math.sin(math.pi)
1.2246063538223773e-16
>>> math.sin(0.5*math.pi)
1.0
>>> math.sin(15*math.pi)
5.3896232095340668e-15

搞不明白高手给说说看!
2008-07-16 00:23:02
bfishadow   all done. defects reported.
2008-07-24 20:17:40
咖啡小猪   #!/usr/bin/env python
#filename:leap_year
a=int(raw_input('Enter years in here:'))
def leap(a):
    if (a%400)==0:
        return 1
    elif (a%100)==0:
        return 0
    elif (a%4)==0:
        return 1
    return 0
if leap(a)==1:
    print 'This is a leap'
else:
    print 'This is not leap'
2008-09-04 16:09:04
咖啡小猪   上面是我自己写的例子 不知道对不对 还请指教
2008-09-04 16:09:46