learn python the hard way 读书笔记(1)

   这是我的第一本python学习课本的笔记,  其实head frist python 是第二本,  我的职业是一个创业的销售,学习python目的是为了dj的微信开发和网页后端的开发。还想做一个自动发帖机以及蜘蛛搜索数据记录。

    静下来读书, 每年两小时的编程, 时间是节约出来的。


    Learn python the hard way 目前读到了自动化测试。


    笔记主题内容: 自动化测试。(书的第46-49课)


     知识点: 1, 什么是python软件包?

                             一个第三方python共享包。

                    2,项目骨架是什么?

                    3,pip是什么?

                    4,mac 下如何建立项目骨架环境?

                     5,什么是自动化测试?

                    

        拓展知识点:

                1: 如何查看python模块保存在本地电脑哪里?

                     ide中 ,   import sys ; sys.path

       

               2,分号是干嘛用的?

                    多个命令在一行, 用分行隔开。

                3,分享(发布)工具有哪些?

                      第三方: setuptools

                       官方:distutils

                 4, 函数中的*与** 干嘛的?

                          

                  5,字典怎么用,怎么打印出字典不同健和值

                          

movies = { "author": "lixiang",
           "addres":'shanghai'
                      }

for x  in movies:
    print x
    print movies[x]

              6, 如何添加字典的值

                   

move = {}
move[1] = 'wow'
print(move)

{1:'wow;}  , 有一点特别注意, move  必须被定义过。


       7, 如何增加列表的值

             回想第一课笔记。 列表的增加,减少,删除都必须使用bif中的方法,而不是调用。move[1] = 'wow'  ,这种是错误的。

              

move = []
move.append('jack')
move.pop()  #删除最后的元素
move.extend(),  拓展一个集合
move.remove('jack')
move.insert(1,'jack') 在某个位置,插入元素
补充,insert的位置, 如果之前的位置是空值,只会按照实际顺序来添


               笔记内容:


           一、可爱的pypi.

                    还记得上一篇日记中,提到的printlist函数, 把这个嵌套的列表打印出来, 如果你一个人知道,可就不是python的特点了, python最大的功能就是分享,把你的代码分享出去。

                  python 专门为这个, 制作了分享工具, 如果我们叫的比较正式,叫发布工具。

                  而存放全世界所有共享python代码,就叫做pypi  python软件包索引。

                

        


          二,共享你的软件包

                  软件包的核心, 是你编写的程序代码, 但是如果你给了别人,就必须加上一些注释,这样人家才看的懂。

''' 这是一个printlist,模块,他包括printlist函数,作用时打印列表,可能包括(不包括)嵌套列表'''
def printlist(list_name):  
  ''' 这个函数用一个参数,list_name, 可以任意列表,包括嵌套列表'''
    for each_item in list_name:  
        if isinstance(each_item,list):  
            printlist(each_item)  
        else:  
            print(each_item)  

              把他保存成一个printlist.py 保存下来。


             建立一个文件夹,printlist. 

             1, 将printlist放在文件夹里。

             2,使用发布工具, 制作setup.py文件 


一种setup代码, 简称setup-1            

__author__ = 'lixiang'
try:
    from setuptools import setup
except ImportError:
    from distutils.core import  setup

setup(
    
    name = 'printlist',
    version = '1.0.0',
    py_moudle = ['printlist'],
    author = 'lixiang',
    author_mail =  '3qfriend@gmail.com',
    url = "http://www.1b98.com"
)

另一种setup代码,简称setup-2

__author__ = 'lixiang'
try:
    from setuptools import setup
except ImportError:
    from distutils.core import  setup

config = {

    name :'printlist',
    version : '1.0.0',
    py_moudle :['printlist'],
    author :'lixiang',
    author_mail : '3qfriend@gmail.com',
    url : "http://www.1b98.com"
}

setup(**config)

    这个地方查看一下,  两本书不同, 一本书是这么写的。,  config = {  健:值} setup(**config) , 两种方式,到底哪个对呢?  **config是撒意思。

     首先当然是查看  import  distutils ; distutils.setup  

         setup(**attrs)

            一串英文, 看懂,  还好找到官方文档,https://docs.python.org/2/distutils/apiref.html

          大致是看懂了,  setup(**attrs)

             说的是撒意思呢,  参数可以多选,没有限制,就是文档里面出现的参数,随便你填, 还有一个重要的一点, 就是顺序随便弄。

               这样话, 函数setup中的参数, 调用函数的时候,  setup(a,c,d,e,b) 就可以了,不需要安装一定参数的,   我们在例子中不就是setup-1了吗。

                  

             那你可能会问, 这种def 函数, 怎么表达,  python考虑到了,  用一个星表示参数多少都可以接受, 两个星表示顺序可以乱, 用代码看看呗!


     

def yourhome (a,*b):
    print a
    print b
    print len(b)
yourhome(12,'home','who?')

显示  12

 ('home','who?')


这里面我们用setup-2的思路:

   

def yourhome (a,*b):
    print a
    print b
    print len(b)


config = ('home','who?')

yourhome(12,*config)

          

  看到了吗, 参数的不同方式, 接着下面写一个**        

def yourhome (a,**b):
    print a
    print b
    print len(b)

yourhome (12, {'author':'lixiang','age':'12'})

TypeError: yourhome() takes exactly 1 argument (2 given)

出错了? 怎么回事?


def yourhome (a,**b):
    print a
    print b
    print len(b)

yourhome (12, author='lixiang', age=12)

12
{'age': 12, 'author': 'lixiang'}
2   

函数中的参数, 你怎么用字典呢???  那可是参数哦,    如果你想只用一个参数表示,

config = { 'author':'lixiang',
            'age':12
              }
yourhome(12,**config)

   

这个地方, 突然想到字典,len(字典),是2, 还有字典有没有顺序呢?

       因为测试是个数, 通过学习字典,你会发现, 根本不需要顺序啊。   弄懂来setup两种表达方式了吧。


     这里还有一个想法,这样可以吗?

  

def yourhome (a,*b):
    print a
    print b
    print len(b)

yourhome (12, author='lixiang', age=12)

推断,是错误的,

     因为元组没有办法保存这个,  其实看到了上面都格式,就应该想到** 


    我们继续哦。




 

   

  



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
"Learn Python the Hard Way" 是一本非常受欢迎的Python编程入门教材,由Zed Shaw编著。虽然很多人推荐这本书,但是可能有人会想要获取中文版的PDF。 实际上,"Learn Python the Hard Way" 的官方版本只有英文版,目前没有官方中文翻译。然而,你仍然可以通过互联网上的其他资源找到非官方的中文翻译版本。在很多技术论坛和编程社区上,都有Python爱好者提供自己的中文翻译版本,一些电子书资源网站上也有非官方的中文PDF版本。 要找到中文翻译版,你可以在搜索引擎中输入相关关键词,比如 "learn python the hard way 中文pdf" 或者 "learn python the hard way 中文翻译"。在搜索结果中,你可能会找到一些免费的资源供你下载或在线阅读。此外,还有一些网站提供付费的中文翻译版本,你可以根据自己的需求决定是否购买。 无论你选择哪种方式,记得要确认翻译版本的质量和真实性。可以通过查看评论、评级或者与其他Python学习者交流来了解其他人对于该版本的评价。另外,虽然中文翻译版本对于初学者会有一定帮助,但如果你有能力阅读英文,最好还是参考官方英文版来学习,以避免因为翻译的不准确而导致的误解或困惑。 总而言之,虽然"Learn Python the Hard Way"的官方版本只有英文版,但你可以通过互联网查找一些非官方的中文翻译版本。希望你能够找到一本合适的中文翻译版本,顺利学习Python编程。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值