读《疯狂Python讲义》有感

    最近看到论坛里一直在推荐这本《疯狂Python讲义》,一时心动也买了一本来看,目前已囫囵吞枣的看了一遍,略有收获,现在将我总结的一些知识点与大家分享,有则改之,无则加勉,望不嫌弃~

 

一、弱类型包含两方面的含义:

        1、所有的变量无需声明即可使用

        2、变量的数据类型可以随时改变

Python是一门弱类型语言

 

二、str的常用方法

     str.title():将每个单词的首字母改为大写

     str.lower():将整个字符串改为小写

     str.upper():将整个字符串改为大写

     str.strip():删除字符串前后的空白

     str.split():将字符串按指定分割符分割成多个短字符串

     实例:print(s.split('.')) #使用点进行分割

     str.join():将多个短字符串连接成一个长字符串

     实例:print('/ '.join(list)) #使用'/'作为分割符,将list中的所有短字符串连接成一个长字符串

 

三、三目运算符:“a大于b”if a > b else “a不大于b” #输出a大于b

 

四、lambda表达式的几个要点:

     1、lamdba表达式必须使用lamdba关键字定义

     2、在lamdba关键字之后,冒号左边的是参数列表,冒号右边的是该lamdba表达式的返回值

 

五、函数装饰器:

     1、将被修饰的函数(函数B)作为参数传给@符号引用的函数(函数A)

     2、将函数B替换成第1步的返回值

 

六、Python并没有真正的隐藏机制,所以Python类定义的所有成员默认都是公开的,如果程序希望将Python类中的某       些成员隐藏起来,那么只要让该成员的名字以双下划线开头即可

 

七、object类是所有类的父类

 

八、__repr__是python类中的一个特殊方法,它返回一个对象的“自我描述”信息,

     所有的python对象都具有__repr__方法

 

九、双端队列(deque):

     如果要把deque当成栈使用,只需要在一端添加、删除元素,因此调用append和pop方法即可

     如果要把deque当成队列使用,只要在一端添加元素,另一端删除元素,因此调用append和popleft方法即可

 

十、目录函数Path的使用:

     Path.iterdir():该方法可返回Path对应目录下的所有子目录和文件

     Path.glob():该方法可获取Path对应目录及其子目录下匹配指定模式的所有文件

 

十一、os模块的使用:

     os.getcwd():获取当前目录

     os.mkdir(path,mode):创建path对应的目录,mode用于指定该目录的权限

     os.makedirs(path,mode):它与mkdir的区别在于它可以递归创建目录

 

十二、线程的生命周期:

    线程的生命周期要经过新建(New)、就绪(Ready)、运行(Running)、

    阻塞(Blocked)和死亡(Dead)5种状态

 

十三、解决线程死锁问题的几种方式:

    1.避免多次锁定,尽量避免同一个线程对多个Lock进行锁定

    2.保证相同的加锁顺序,如果多个线程需要对多个Lock进行锁定,则应该保证它们以相同的顺序请求加锁

    3.使用定时锁

    4.死锁检测机制

 

十四、Python为进程通信提供了两种机制:

    1.Queue:一个进程向Queue中放入数据,另一个进程从Queue中读取数据

    2.Pipe:Pipe代表连接两个进程的管道,程序在调用Pipe()函数时会产生两个连接端,

                 分别交给通信的两个进程,接下来进程既就可从该连接端读取和写入数据

 

十五、基于TCP协议的网络编程:

    1.服务器端编程的基本步骤:

              a.创建一个socket对象

              b.绑定指定IP地址和端口

              c.调用listen()方法监听网络

              d.调用accept()方法接收客户端的连接

 

    2.客户端编程的基本步骤:

              a.创建socket对象

              b.调用connect()方法连接远程服务器

 

十六、单元测试

    1.单元测试的逻辑覆盖包括:

              a.语句覆盖:每条语句都至少执行一次

              b.判定覆盖:每条语句都执行,每个判定的所有可能结果都至少执行一次

              c.条件覆盖:每条语句都执行,判定表达式的每种可能都取得各种结果

              d.判定-条件覆盖:同时满足判定覆盖和条件覆盖,每个判定条件的各种可能组合都至少出现一次

              e.路径覆盖:程序的每条可能路径都至少执行一次

    总结:通常在实际测试中,基本要求是做到判定覆盖即可

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小陈工

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值