重点:

lambda


:前面是函数参数,后面是函数返回值

参数用逗号分隔,返回值也是用逗号

1
lambda 函数参数,函数参数: 返回值,返回值

列表生成式

1
2
>>> [x * x for x in range(1, 11)]
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
1
2
L = [x * x for x in range(1, 11) if x % 2 == 0]
print(L[:])
1
2
3
4
5
6
7
>>> d = {'x': 'A', 'y': 'B', 'z': 'C' }
>>> for k, v in d.items():
... print(k, '=', v)
...
y = B
x = A
z = C

内置函数

数学运算

1
2
3
4
5
6
7
8
abs(-5)                         # 取绝对值,也就是5
round(2.6) # 四舍五入取整,也就是3.0
pow(2, 3) # 相当于2**3,如果是pow(2, 3, 5),相当于2**3 % 5
cmp(2.3, 3.2) # 比较两个数的大小
divmod(9,2) # 返回除法结果和余数
max([1,5,2,9]) # 求最大值
min([9,2,-4,2]) # 求最小值
sum([2,-1,9,12]) # 求和
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
int("5")                        # 转换为整数 integer
float(2) # 转换为浮点数 float
long("23") # 转换为长整数 long integer
str(2.3) # 转换为字符串 string
complex(3, 9) # 返回复数 3 + 9i
ord("A") # "A"字符对应的数值
chr(65) # 数值65对应的字符
unichr(65) # 数值65对应的unicode字符
bool(0) # 转换为相应的真假值,在Python中,0相当于False
在Python中,下列对象都相当于False:[], (),{},0, None,0.0,''
bin(56) # 返回一个字符串,表示56的二进制数
hex(56) # 返回一个字符串,表示56的十六进制数
oct(56) # 返回一个字符串,表示56的八进制数
list((1,2,3)) # 转换为表 list
tuple([2,3,4]) # 转换为定值表 tuple
slice(5,2,-1) # 构建下标对象 slice
dict(a=1,b="hello",c=[1,2,3]) # 构建词典 dictionary

序列操作

1
2
3
4
all([True, 1, "hello!"])        # 是否所有的元素都相当于True值
any(["", 0, False, [], None]) # 是否有任意一个元素相当于True值
sorted([1,5,3]) # 返回正序的序列,也就是[1,3,5]
reversed([1,5,3]) # 返回反序的序列,也就是[3,5,1]

类,对象,属性

1
2
3
4
5
6
7
8
9
define class
class Me(object):
def test(self):
print "Hello!"

def new_test():
print "New Hello!"

me = Me()
1
2
3
4
5
6
hasattr(me, "test")              # 检查me对象是否有test属性
getattr(me, "test") # 返回test属性
setattr(me, "test", new_test) # 将test属性设置为new_test
delattr(me, "test") # 删除test属性
isinstance(me, Me) # me对象是否为Me类生成的对象 (一个instance)
issubclass(Me, object) # Me类是否为object类的子类

导入库

json

方法名 作用
json.loads 将已编码的 JSON 字符串解码为 Python 对象
json.dumps 将 Python 对象编码成 JSON 字符串
关于中文
1
json.dumps(info, ensure_ascii=False)

datetime


os


线程池使用

1
2
3
4
5
6
7
8
9
10
11
from concurrent import futures
with futures.ThreadPoolExecutor(4) as executor:
to_do = []
for i in [2, 3, 8, 5, 4]:
sub = executor.submit(func, i)
to_do.append(sub) # 存储各个Future到列表中,给后面的 as_completed()使用。
for i in futures.as_completed(to_do):
# 如果只是让线程执行,而不需要获取返回值,可以不用下面这段代码。
# res = i.result()
# print(res)
pass

逆向常用

hook :

1
Object.defineProperty(document,'cookie',{set:function(a){debugger}})