复习大集合:

1.函数的参数:位置参数,关键字参数,动态参数

2.命名空间:内置命名空间,全局命名空间,局部命名空间

3.闭包函数:函数引用未定义的函数外非全局的变量叫做闭包,该函数称为闭包函数

4.函数无返回值:1.不写 2.return 3.return None 无返回值None

5.函数返回值个数:多个返回值可以用一个变量接收,并存成元组方式,或者用多个变量接收,可以直接返回一个列表或者一个元组

6.字符编码:unicode 万国码(所有字符用两个字节接受,转换速度快,但是占内存) utf8 英文编码一个字节,中文两个字节

7.执行python两种方式:1 ./Python.py 行首要指定解释语言 2python python.py 直接指定使用python 解释

8.pyc,编译后的跨平台字节码文件,由Python虚拟机来执行,提高加载的速度

9.n.bin_length() 返回二进制的长度

10.68个内置函数

11.globals() 获取全局变量的字典,locals() 获取本地方法所在命名空间的局部变量的字典,只读

12.hash(0)返回变量的哈希值,元组可以哈希,列表不可以哈希

13.eval 执行字符串形式的计算表达式,exec 执行字符串形式的Python语句

14.filter(func,list);将list中的元素遍历做func的规则,返回一个新列表

15.map(func,list);将list中的元素遍历做func的运算后,返回一个新列表

16.数字转换:bin,oct,hex

17.数字运算:abs,divmod,min,max,sum,round,pow

18.迭代器: iter_1 = [1,2,3,4].__inter__() 获取一个迭代器对象

iter_1.__length_hint__(),获取迭代器中元素长度

iter_1.__setatate__(4),从索引位置开始迭代

iter_1.next(),一个一个获取迭代元素

19.生成器

def genrator_func():

a=1

yield a  使用yield一个一个存储

b=2

yield b

g1=genrator_func()

next(g1) == a

next(g1) == b  使用next一个一个获取

eg:

def h():

print 'start yield'

m = yield 5

print m                            #n=yield r

d = yield 12                       #r=c.send(n)

c = h()

print(c.next())

print(c.send('sss'))

send方法就是向函数中传值,把值赋给yield对应的变量,同时还执行next方法

>>5

>>sss

>>12

20.要用一个send方法的生成器一定至少要含有两个yield

21.yeild from :

def func():

yeild from [1,2,3]  #循环yeild

22.range 和 xrange 的区别,xrange 不返回list,而是返回一个iterable的对象,避免承包缓存

23.[i for i in range(10) if i%2==0] :获取0-10之间的偶数

24.list(map(lambda z:{z[0]:z[1]},zip(t1,t2)))

25.正则匹配 后面加一个(?)使其变成惰性匹配 ,Python默认是贪婪匹配(即尽可能多的匹配)

26.正则匹配 字符串前面加 r 表示不匹配。

27.正则匹配 .*?X 前面取任意长度,知道遇到X

re.compile() 匹配规则 obj=re.compile() ret=obj.findall()

re.findall() 匹配所有

re.search() 匹配一个则返回,通过.group()方法获取匹配的字符串,没有匹配返回None

re.match() 从字符串开始处匹配,其他同re.search()

re.split('[ab]','abgsefs') 先按a分割,在按b进行分割,结果返回列表

re.split('(2)','sdf2sdf') ['sdf','2','sdf'],split的优先级,保留匹配的部分

re.sub('\d','-','ssf2sf3',1) 将数字替换成‘-’指定替换一次,,默认是全替换

re.subn('\d','-','sdfa2sdf6a') 将数字全替换成‘-’,放回一个元组('sdfa-sdf-a',2)

re.finditer('\d', 'sdfaqef2asd45f') 返回一个迭代器: next(ret).group() 获取一个值

re.search(r'(?P<name>go)\s+(?P=name)\s+(?P=name)', 'go go go').group('name') 命名分组

28.collections 内置模块

namedtuple:

deque:实现高效插入和删除的双向列表,适用于队列和栈

defaultdict:使用dict时,如果引用的KEY不存在时,就好抛异常,使用defaultdict可以返回一个默认值

OrderedDict: dict是无序的,如果要保存key的顺序可以使用OrderedDict

Counter, 计算出现的次数

29.json.dump(dict,f) #接受一个文件句柄,直接将字典换成字符串写入文件

json.load(f) #接受一个文件句柄,直接将文件中的json字符串转换成数据结构返回

30.json 用于字符串和Python数据类型间进行转换

pickle 用于Python特有的类型 和Python的数据类型进行转换

31.子类引用父类的方法,super(B,b).hahah() 即使子类有hahah()方法也直接使用父类的方法

32.子类构造方法中,引用父类的构造方法,两种方式:

Baseclass.__init__(a,b,c) ,Teacher.__init__(self,name,gender)

super().__init__(name, aggressivity, life_value)

super(B,self).__init__()

33.python interface: abc 模块 父类的方法加上装饰器后,子类继承必须重写父类被装饰的方法,否则活报错。

34.避免多继承,推荐多实现接口,(大量的多继承,会出现不需要的属性被继承到,造成资源浪费)

35.访问私有属性,bar._Bar__city ,外部访问父类的私有方法,obj._父类名__属性

36.父类的私有方法不会被子类覆盖,

37.isinstance(obj,Foo) 判断obj 是否Foo的子类;issubclass(Bar,Foo) 判断Bar是否Foo的子类

38.但是当你用字符串格式化的时候 %s和%r会分别去调用__str__和__repr__

39.struct该模块可以把一个类型,如数字,转成固定长度的bytes ,解决粘包的时候可以使用,让对方先接收固定长度的bytes,解读出信息头和信息长度。

40.CSS中不被继续的属性:border, margin, padding

41.比较运算符两侧如果一个是数字类型,一个是其他类型,会将其类型转换成数字类型.

42.比较运算符两侧如果都是字符串类型,比较的是最高位的asc码,如果最高位相等,继续取第二位比较

43.其他:

如果一个运算数是 Boolean 值,在检查相等性之前,把它转换成数字值。false 转换成 0,true 为 1。

如果一个运算数是字符串,另一个是数字,在检查相等性之前,要尝试把字符串转换成数字。

如果一个运算数是对象,另一个是字符串,在检查相等性之前,要尝试把对象转换成字符串。

如果一个运算数是对象,另一个是数字,在检查相等性之前,要尝试把对象转换成数字。

44.var x= (new Date()).getDay(); 获取今天的星期值,0位星期天

45.JavaScript中的JSON:1.JSON.parse() 将JSON字符串转换为JavaScript对象 2.JSON.stringify()将对象转换为字符串

46.csrfmiddlewaretoken:$("[name='csrfmiddlewaretoken']").val(),csrf 会自动加一个class='hide'的input 标签

47.Ajax对于csrf的四种方式:1.data: {csrfmiddlewaretoken: '{{ csrf_token }}' }, 4.@csrf_exempt

2.{% csrf_token %}  3.headers:{"X-CSRFToken":$.cookie('csrftoken')},

48.Ajax 异步,局部刷新

49.Ajax 原理流程

1.打开与服务器的连接(xmlHttp.open('GET','ajax_get/?a=1'),true) async:默认为True,表示异步请求

2.发送请求 (xmlHttp.send(null))

3.接收服务器响应 xmlHttp.onreadystatechange = function() {

if(xmlHttp.readyState == 4 && xmlHttp.status == 200) {

alert(xmlHttp.responseText);

}};

50.表单序列化:data: $("#fm").serialize(),获取form表单中有name属性的控件值,带有disabled的属性不提交,返回String类型

51.文件上传:<p>密码: <input type="password" name="pwd"></p>

fileobj=request.FILES.get("file")

with open(fileobj.name,"wb")as f:

for line in fileobj:

f.write(line)

51.flask:login的装饰器函数必须在路由函数的下面,紧贴着函数

52.WTForms是一个支持多个web框架的form组件,主要用于对用户请求数据进行验证。

.name=simple.StringField()

.email=html5.EmailField()

.gender=core.RadioField()

53.type("ReedSun", (ShuaiGe,), {"shuai":True, "test":lambda x: x+2}) 通过type创建一个类

54.partial(_lookup_req_object, 'session') #偏函数

55.sqlAlchemy:中操作数据库是session和scoped_session的区别:

由于无法提供线程共享功能,所以在开发时要注意给每一个线程创建自己的session

scoped_session封装的两个值,session 和 registry,registry()执行ThreadLocalRegistry的__call__方法,如果

当前本地线程中有session 就返回session,没有就将session添加到本地线程

优点:支持线程安全,为每一个线程都创建一个session

两种方式:通过本地线程Threading.Local()和创建线程的唯一标识实现

54.django的缓存,1.设置缓存:self.cache.set(self.key,) 2.获取缓存:self.cache.get(self.key, [])

55.接口的两种方式:1.不重写直接抛异常。2.

from abc import abstractmethod, ABCMeta

class Interface(metaclass=ABCMeta):

@abstractmethod

def method(self, arg): pass

56.算法:

1.冒泡排序:比较两个相邻的数,如果前面比后面大就交换位置

2.选择排序:遍历一次记录最小的数,放置在第一个位置,在遍历一次,放置在第二个位置

3.插入排序:列表被分为有序区和无序区,最初有序区只有一个元素。每次从无序区选择一个元素,插入到有序区的位置,直到无序区变空。

57.flask的session默认将用户信息加密成字符串作为cookie传回给用户,缓存到数据库导入flask_session插件

58.with obj: 会自动执行__enter__ 函数体执行完 再自动执行__exti__

59.去除字符串中的换行使用s.replace(os.sep, '')

Collection record的更多相关文章

  1. [转]50 Shades of Go: Traps, Gotchas, and Common Mistakes for New Golang Devs

    http://devs.cloudimmunity.com/gotchas-and-common-mistakes-in-go-golang/ 50 Shades of Go: Traps, Gotc ...

  2. 【原】Java学习笔记029 - 映射

    package cn.temptation; import java.util.HashMap; import java.util.Map; public class Sample01 { publi ...

  3. 补习系列(16)-springboot mongodb 数据库应用技巧

    目录 一.关于 MongoDB 二.Spring-Data-Mongo 三.整合 MongoDB CRUD A. 引入框架 B. 数据库配置 C. 数据模型 D. 数据操作 E. 自定义操作 四.高级 ...

  4. Oracle中对XMLType的简单操作(extract、extractvalue...)

    Oracle中对XMLType的简单操作(extract.extractvalue...)    1.下面先创建一个名未test.xml的配置文件. <?xml version="1. ...

  5. 3-29 params的理解; Active Model Errors; PolymorphicRoutes 多态的路径; ::Routing::UrlFor

    params的理解和作用: http://api.rubyonrails.org/classes/ActionController/Parameters.html#method-i-require A ...

  6. Oracle中对XMLType的简单操作(extract、extractvalue)

    前几天一直在做Oracle对XMLType字段的操作,我还不是Oracle大拿,到网上找了很多资料,但是很多就是单一功能的介绍,不能很好的解决问题,现在在这里总结下. 1.下面先创建一个名未test. ...

  7. MyBatis动态批量插入、更新Mysql数据库的通用实现方案

    一.业务背景 由于需要从A数据库提取大量数据同步到B系统,采用了tomikos+jta进行分布式事务管理,先将系统数据源切换到数据提供方,将需要同步的数据查询出来,然后再将系统数据源切换到数据接收方, ...

  8. FCC高级编程篇之Record Collection

    Record Collection You are given a JSON object representing a part of your musical album collection. ...

  9. 「2014-2-6」TokuMX and MongoDB related materials collection

    简介参考 TokuMX 和 MongoDB 各自的官方站点.       ##  Tokutek 最重要的特点和 marketing word 是所谓 fractal tree indexing te ...

随机推荐

  1. 【mysql】mysql 配置

    安装完mysql后, 要及得配置一下 /etc/mysql/my.cnf 配置字符编码为utf8 [client] default-character-set = utf8 [mysqld] defa ...

  2. 关于win10上安装.Net Framework3.5的解决办法

    1.首先下载. NET Framework 3.5的安装包,格式为cba格式; 2.将下载下来的NetFx3.cab 放进 C:\Windows 目录下; 3.打开控制面板->程序->启动 ...

  3. lintcode五道题

    1.二叉树的最大深度 最大深度为根节点到最远叶子节点的距离为最大深度,于是可以先找到根节点到叶子节点最大的距离,过程就可以分为左子树 和右子树分别进行来求左.右子树的最大深度lh=height(roo ...

  4. Kyligence Analytics Platform Enterprise

    平台: arm 类型: ARM 模板 软件包: kap 2.3 kyanalyzer 2.3 apache kylin basic software bi big data cube data war ...

  5. webpack前端构建工具学习总结(二)之loader的使用

    Webpack 本身只能处理 JavaScript 模块,如果要处理其他类型的文件,就需要使用 loader 进行转换. Loader 可以理解为是模块和资源的转换器,它本身是一个函数,接受源文件作为 ...

  6. LeetCode Longest Substring Without Repeating Characters 最长不重复子串

    题意:给一字符串,求一个子串的长度,该子串满足所有字符都不重复.字符可能包含标点之类的,不仅仅是字母.按ASCII码算,就有2^8=128个. 思路:从左到右扫每个字符,判断该字符距离上一次出现的距离 ...

  7. nvm安装nodejs(安装在非系统盘内)

    在使用nodejs时有时需要不同的版本之间进行切换,所以就用到了版本管理工具nvm,在windows系统下用的是nvm-windows,这里选择的是nvm-noinstall.zip免安装版本(需要配 ...

  8. 不得不承认pretty-midi很好用,以及一些简单的上手

    官方文档在此: http://craffel.github.io/pretty-midi/ 首先我们演示如何将midi文件转变为piano-roll格式(matrix). 现在我们手中有了一个数据集, ...

  9. Windows底层开发前期学习准备工作

    1.若对Windows底层开发没有兴趣,不建议继续深究, 若有些兴趣可以继续. 2. 先广泛打基础,比如C/ASM/C++/MFC,再学习Windows核心编程,对R3上的一些开发有所熟悉,再系统的学 ...

  10. http头部信息学习

    想的每2周进行知识的总结,自己拖延症有犯了,发现自己知识库量还是太少,平时总结和发现问题还不够深,对待问题的深度也存在很多问题,但是坚持学习,总结,后面应该会有收获, 1.常见的返回码 100: 请服 ...