Python学习之路(Win7)之Python核心编程

来源:互联网 发布:手机看报软件 编辑:程序博客网 时间:2024/05/20 17:42

首先下载这本python核心编程的电子书http://download.csdn.net/detail/maodouzi/1570294 然后安装pythonwin一路“下一步” 安装好之后 我的是在python目录的\Lib\site-packages\pythonwin下可以看到pythonwin.exe是一个很卡哇伊的恐龙图标 我把它拖到桌面 方便以后打开哈哈好可爱的图标。第二次打开这个图标 测试一下可以用不 哟西 应该证明了可以用了。好神奇和古老的样子哈哈。

第二章部分:

但下面这个将输出重定向到文件有什么用啊 目前感觉没什么用。这两个差别又刚刚搞混了 哎简明python教程里搞混一次 现在又没长记性。再次打开还是觉得这个恐龙很卡哇伊啊,话说2.17函数这一节 书上缩进没缩进好 应该是这样缩进才对。2.18类这里缩进也不好 应该是这样才对这本书目前看着是挺好的 但目前就是发现缩进不好。可是有个奇怪的为什么a.showver运行出来不是2.7呢 哦 我眼瞎 我知道了忘记()了这样就行了。第二章的习题部分 我做2-9时候发现个好奇怪的我以为最后输出的sum应该是16的??重新写了下是不是没办法得到3.2?2-11题是要这个效果吗 怎么感觉我没理解对题目意思

第三章部分:

例3.1是这样写的吧两个脚本写好后 怎么导入运行呢  import makeTextFile会报错怎样才能导入makeTextFile输入自己的文件名和文件内容呢??第二次import时候我把readTextFile放在pythonwin的目录下 然后居然说eachline没有定义 可是python不是可以这样用的吗 后来我改成了这样然后去读pythonwin同级目录下的license.txt文件结果可以读出来了 在想是不是书上那个程序是unix版本的  不是windows下的 所以不行?? 改成这样就好了 不报错了和我用记事本打开的license.txt一样证明这个readTextFile还是可以做为一个模块运行的。可是makeTextFile还是不行难道又是因为这是unix下的??我想了想 最终改成了这样一样放在pythonwin的同级目录下,然后导入这个模块 会叫我输入一个文件名  在目录下没有的文件名  就是新创建一样然后会叫我输入第一行下一行如果不想输入了 就单独输入一个.英文句号就好了模块结束了然后目录下可以看到刚刚创建的文件然后再用import readTextFile打开这个 看是不是和我想要的一样事实证明的确是一样这样这两个模块的应用就正确了。猜测为什么之前参照书上的不行 应该要么是我电脑是window的原因 要么就是我的python和书上用的版本不一样 我是2.7的。总之  现在这样就行了。

第五章数值类型部分:

第二行竟然和书上不一样,书上会报那个错 这个不会  难不成又是版本问题。。。练习题部分:

之前是导入了模块直接调用,原来会报错哦 要用.符号调用才行。5-5比较有意思点 书上是用美元 这里我用人民币好了 按钱的张数最少来换钱(和题目一个意思)比如100下有 50、20、10、5、1元的  换钱:

#practice5-5  use RMB
def change1money(yiyuan):
    print 'give her %d yiyuan.'%(yiyuan)
def change5money(wuyuan):
    print 'give her 1 wuyuan'
    num1=wuyuan%5
    print 'give her %d yiyuan.'%(num1)
def change10money(shiyuan):
    print 'give her 1 shiyuan.'
    num51=shiyuan%10
    if num51>=5:
        change5money(num51)
    else:
        change1money(num51)
def change20money(ershi):
    num20=ershi/20
    print 'give her %d ershiyuan.'%(num20)
    num20low=ershi%20
    if num20low>=10:
        change10money(num20low)
    elif num20low>=5:
        change5money(num20low)
    else:
        change1money(num20low)
def change50money(wushi):
    print 'give her 1 wushiyuan.'
    num50low=wushi%50
    if num50low>=20:
        change20money(num50low)
    elif num50low>=10:
        change10money(num50low)
    elif num50low>=5:
        change5money(num50low)
    else:
        change1money(num50low)
def change100money(baiyuan):
    num100=baiyuan/100
    print 'give her %d baiyuan.'%(num100)
    num100low=baiyuan%100
    if num100low>=50:
        change50money(num100low)
    elif num100low>=20:
        change20money(num100low)
    elif num100low>=10:
        change10money(num100low)
    elif num100low>=5:
        change5money(num100low)
    else:
        change1money(num100low)
def changemoney(mymoney):
    if mymoney>=100:
        change100money(mymoney)
    elif mymoney>=50:
        change50money(mymoney)
    elif mymoney>=20:
        change20money(mymoney)
    elif mymoney>=10:
        change10money(mymoney)
    elif mymoney>=5:
        change5money(mymoney)
    else:
        change1money(mymoney)

结果证明可以:其实我应该把五角钱、一角钱包括进来 这样就可以实现真正的换钱了 目前这个只是换整钱 不能有小数点的 如果把五角钱和一角钱都算进来  那就是像超市傻瓜式找零的模式了   目前这个只是给定一个数 把这个数换成多少张100 多少张50 多少张20 多少张10 多少张5和多少张1元人民币   其实应该把五角和一角算进来  再改成做一个超市找零傻瓜式程序  总共给超市多少钱 买了多少钱的东西 剩下多少钱剩下的钱他应该给我多少张50多少张20多少张10多少张5多少张1元。。。这样更有趣。5-16题为什么我一条条运行没错 导入调用就错呢?这样没错 可是以模块调用就报错说range()要是整数 可我的是整数啊???

第六章部分:

例6.1竟然有笔误

例6.15.1用list模拟堆栈功能  挺有趣的 之前没见过strip原来据说是去掉列表两头的空格 ?

不是在pythonwin下写哦 是在脚本下写来导入调用么 我改成了这个最简化的样子 可是怎么有红色标错的提示呢?真是奇了怪了 我重新打一次 又不提示错误了为什么啊?现在就可以了出栈这里不对  应该是这样这样就可以了至于书上的那个 我写出来它报错 暂时不管了 就用这个吧。下个例题要改成队列  就把popit()函数pop()那里改成pop(0)即可  先进先出。

练习题部分:6-3题:

可以了第一问 但感觉这个输入截止的标志写得太low了  算了暂时可用就行  不过好像理解错题目意思了 我是一个个输入数字  题目是要一串数字?6-4题:第6-5题是叫我干嘛 我怎么看不懂中文了?额我没懂它是什么意思 叫我干嘛?6-6可以了。第6-7题 我可以说我没找到例6.5不  我找了几遍还是找不到  只找到6.1..6.2....6.3...6.4就是没有例6.5 所以就忽略了 我其实想做这个题的 但找了四遍还是没找到。。。醉了。第6-8题前部分:可以了就是有空格 改了下 去掉了-右边的空格 可是前面的空格还没去掉。。。可以用+符号 太蠢了这样就行了啊!

第九部分:文件输入输出

       话说从第七章开始就没有做练习题甚至例子了,最近好忙 加上要请一个星期的假 。。。而且Keras和theano还有python都得同时看还得用。。。而且公司的项目好像进入到白热化阶段了 感觉到开始忙了 所以《Python core pragram》我就开始忽略练习题了 其实这样不好 这样不能深入理解 容易忘记 但只能等闲下来去补上了。

原来readline()是读的一行,我真是瞎了狗眼 还奇怪怎么没有全部读出来 这样才对  把每一行读出来放在一个列表里。原来是readlines()总是喜欢少写一个s。

第二个例子 创建一个可读可写的告诉文件当前位置 w+和w返回一样的?书上是把后面的换行符当成一个转义字符吧 所以是12 我的这个是把\和n分开算2个字符,所以是13吗?和书上不一样 我重新关闭重新打开pythonwin又可以了。。。额。。奇怪。不过我的真的把\n当成2个字符了?

0 0
原创粉丝点击