1 闭包

  定义:闭包是由函数及其相关的引用环境组合而成的实体(即:闭包=函数+引用环境)(想想Erlang的外层函数传入一个参数a, 内层函数依旧传入一个参数b, 内层函数使用a和b, 最后返回内层函数)
  代码:
  def ExFunc(n):
    sum=n
    def InsFunc():
      return sum+1
    return InsFunc
2 装饰器

  定义:他们是修改其他函数的功能的函数。他们有助于让我们的代码更简短
  def debug(func):
    def wrapper():
      print “”[DEBUG]: enter {}()””.format(func.__name__)
      return func()
    return wrapper

  @debug
  def say_hello():
  print “”hello!”””
3 迭代器

   iter(),配合for循环使用,可以控制循环的进度,使用next()函数获取下一个值,直至遇到StopIteration停止循环
4 生成器

  也是一种迭代器,配合yield使用,返回yeild后面的值,下次运行从yield开始
5 描述器

  描述器的表现
  用到三个魔术方法。__get__() __set__() __delete__()
  方法签名如下:
    object.__get__(self,instance,owner)
    object.__set__(self,instance,value)
    object.__delete__(self,instance)
    Self指指代当前实例,调用者。
    Instance是owner的实例。
    Owner是属性所属的类。
  典型的描述器:@Property
  作用:访问类和实例的属性
6 内置模块

  os、json、re、sys
7 内置函数

  zip()、list()、set()、eval()、int()、 str()、max()、min()、tapy()、id()、super()、sum()
8 列表特点

  使用 “列表:无序、可增删改查、可下标查询
  内置函数使用:len(列表)、max(列表)、min(列表)、list(元组)
  添加:列表.append(值)
  修改:列表[下标] = 值
  插入:列表.insert(下标,值)
  删除:列表.remove(值) del 列表[下标] 列表.pop()默认最后一个值
  查看:列表.index(下标) “
9 字符串特点,使用 “切片:str[开始下标 : 结束下标 : 相隔字符]
  super()大写 lower()小写 replace()替换 spli()分割”
10 TCP/UDP

  TCP的优点: 可靠,稳定 TCP的可靠体现在TCP在传递数据之前,会有三次握手来建立连接,而且在数据传递时,有确认、窗口、重传、拥塞控制机制,在数据传完后,还会断开连接用来节约系统资源。
  TCP的缺点: 慢,效率低,占用系统资源高,易被攻击 TCP在传递数据之前,要先建连接,这会消耗时间,而且在数据传递时,确认机制、重传机制、拥塞控制机制等都会消耗大量的时间,而且要在每台设备上维护所有的传输连接,事实上,每个连接都会占用系统的CPU、内存等硬件资源。 而且,因为TCP有确认机制、三次握手机制,这些也导致TCP容易被人利用,实现DOS、DDOS、CC等攻击。
  UDP的优点: 快,比TCP稍安全 UDP没有TCP的握手、确认、窗口、重传、拥塞控制等机制,UDP是一个无状态的传输协议,所以它在传递数据时非常快。没有TCP的这些机制,UDP较TCP被攻击者利用的漏洞就要少一些。但  UDP也是无法避免攻击的,比如:UDP Flood攻击……
  UDP的缺点: 不可靠,不稳定 因为UDP没有TCP那些可靠的机制,在数据传递时,如果网络质量不好,就会很容易丢包。
  小结TCP与UDP的区别:
    1.基于连接与无连接;
    2.对系统资源的要求(TCP较多,UDP少);
    3.UDP程序结构较简单;
    4.流模式与数据报模式 ;
    5.TCP保证数据正确性,UDP可能丢包,TCP保证数据顺序,UDP不保证。
  什么时候应该使用TCP: 当对网络通讯质量有要求的时候,比如:整个数据要准确无误的传递给对方,这往往用于一些要求可靠的应用,比如HTTP、HTTPS、FTP等传输文件的协议,POP、SMTP等邮件传输的协议。 在日常生活中,常见使用TCP协议的应用如下: 浏览器,用的HTTP FlashFXP,用的FTP Outlook,用的POP、SMTP Putty,用的Telnet、SSH QQ文件传输 ………… 什么时候应该使用UDP: 当对网络通讯质量要求不高的时候,要求网络通讯速度能尽量的快,这时就可以使用UDP。 比如,日常生活中,常见使用UDP协议的应用如下: QQ语音 QQ视频 TFTP ……
有些应用场景对可靠性要求不高会用到UPD,比如长视频,要求速率”
11  HTTP/HTTPS协议

  HTTP:是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准(TCP),用于从WWW服务器传输超文本到本地浏览器的传输协议,它可以使浏览器更加高效,使网络传输减少。
  HTTPS:是以安全为目标的HTTP通道,简单讲是HTTP的安全版,即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。
  HTTPS协议的主要作用可以分为两种:一种是建立一个信息安全通道,来保证数据传输的安全;另一种就是确认网站的真实性。
  区别:
  1、https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。
  2、http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。
  3、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
  4、http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。”
12 深/浅拷贝

  浅拷贝:拷贝表面层,更深的层次引用原来地址的,说明:如果拷贝的数据更改,原数据也跟着变浅拷贝list.copy()
  深拷贝:拷贝所有,内存中开辟新地址,说明:如果拷贝的数据更改,原数据没有变深拷贝shallowCopy(list)”
13 __new__ 和 __init__的区别

  1、 继承自object的新式类才有__new__
  2、 __new__至少要有一个参数cls,代表当前类,此参数在实例化时由Python解释器自动识别
  3、 __new__必须要有返回值,返回实例化出来的实例,这点在自己实现__new__时要特别注意,可以return父类(通过super(当前类名, cls))__new__出来的实例,或者直接是object的__new__出来 的实例
  4、 __init__有一个参数self,就是这个__new__返回的实例,__init__在__new__的基础上可以完成一些其它初始化的动作,__init__不需要返回值”
14 线程、进程和协程

  线程:轻量级进程,线程是进程中的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,只拥有一点儿在运行中必不可少的资源,但它可与同属一个 进程的其它线程共享进程所拥有的全部资源
使用threading这个高级模块
  多个线程访问同一资源时需要加线程锁lock
  获取锁:lock.acquire()
  释放锁:lock.release()
  进程:进程是一个实体。每一个进程都有它自己的地址空间
  创建进程的类:process
  协程:一个程序可以包含多个协程,可以对比与一个进程包含多个线程,因而下面我们来比较协程和线程。我们知道多个线程相对独立,有自己的上下文,切换受系统控制;而协程也相对独立,有自己的上下文,但是其切换由自己控制,由当前协程切换到其他协程由当前协程来控制。
  优点:IO资源、减少callback的使用
  用第三方库 gevent 来支持协程。gevent用到的主要模式是greenlet”
15 内存管理

  1、 Python引入了一个机制:引用计数
  2、 垃圾回收机制:当引用计数为0时,调用__del__方法
  注意:
    1、垃圾回收时,Python不能进行其它的任务,频繁的垃圾回收将大大降低Python的工作效率;
    2、Python只会在特定条件下,自动启动垃圾回收(垃圾对象少就没必要回收)
  3、当Python运行时,会记录其中分配对象(object allocation)和取消分配对象(object deallocation)的次数。当两者的差值高于某个阈值时,垃圾回收才会启动。
  4、内存池机制
    Python中有分为大内存和小内存:(256K为界限分大小内存)
    1、大内存使用malloc进行分配
    2、小内存使用内存池进行分配
    3、Python的内存池(金字塔)”
16 随机数据

  random.shuffle(lst):将列表中的元素打乱,洗牌
  random.random():生成一个0-1之间的随机浮点数.
  random.uniform(a, b):生成[a,b]之间的浮点数.”
17 一行带实现1-100之和 sum(range(1,101))
18 python2和python3的区别

  1.print 2 – 没有括号 3 – 右括号
  2.input 2 – int 3 – str
  3.unicode 2 – 对str不友好 3 – utf-8
  4.不等运算符 2 – 有<> 3 去掉了
  5.数据类型 2 – long 3 去掉了”
19  Linux常用命令

  ls、cd、vim、mkdir、pwd、rm、rmdir、mv、cp、cat、find、head、history、tail、grep、chmod、tar、ps、top、kill、free、
20 python中json.loads与eval的区别

  1.json.lodes()可以将英文字符串转化为types.UnicodeType,eval可以将因为字符串转化为tape.stringtape
  2.json.lodes()可以将字符串中的unll空值转化为None,eval会报错
  3.json.lodes()不可以将字符串中的运算输出结果,eval会输出结果”

原文地址:http://www.cnblogs.com/Happy-Girl-T/p/16824395.html

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,请务用于商业用途! 3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入! 4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 5. 如有链接无法下载、失效或广告,请联系管理员处理! 6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员! 8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性