Luo Hao

简单python轮廓

rehoni / 2020-06-20


一些特性

解释型语言:

制表符和四个空格,代码末尾解释器自动加分号

i = 'hello'
print(type(i))
print(isinstance(i,str))
print(id(i)) # 查看内存地址
dir(i) # 查看支持的操作
list与tuple:

​ 区别就是tuple是不可变的,除非tuple里边存放了list

list支持的操作:dir(list),append,insert,pop

input()接收输入字符

elif为else if,为关键字

字典:
Set集合:

唯一性,set可以用于文件去重

定义函数:

def func() 可以return或者不return、函数可递归

切片slice:

list[0:3] ,list[-2:],支持步径操作,arr[::5],arr[::10:2]

enumerate()取到下标和值
列表生成器:

数字、字符串以及字典均可生成列表

b = [x*x for x in range(1,11)]
print(b)
c = [x*x for x in range(1,11) if x%2 ==0]
print(c)
生成器、异常捕获
模块化
pip install request
python中的类

继承object类,私有函数名的声明,类的继承,空成员函数放入pass

错误与异常类

try,exception

调试

常用调试pdb,详细用法https://zhuanlan.zhihu.com/p/37294138

文件读写

建议使用with open as f,(w写入,r读出)的方式,flush()close()

Json in Python

flask restful 接口

多线程与多进程

python解释器的GIL限制,只能使用到单核性能,不讨论多线程,考虑多进程

系统调用fork(),os中封装了常见的fork等系统调用函数

multiprocessing模块,跨平台版本的多进程

进程池:启动大量的子进程,pool默认大小是cpu的核数,需要看到等待效果需要超过核数。

subprocess模块快速启动一个子进程,控制其输入输出。

常用的内建库

datetime:now(), strptime(), strftime(),

base64

网络信息安全

类型

Injection注入,broken authentication,Sensitive Data Exposure,XML外部实体注入,security misconfiguration安全配置错误,cross-site Scripting(XSS)跨栈攻击,反序列化,Using Components with Known Vulnerabilities,Insufficient Logging & Monitoring

好的工具和练习靶场推荐

工具:burpsuite,Metasploit,Kali Linux,hackbar

靶场:DVWA,WebGoat,hackthebox,Vulhub,vulnhub

扫描器:AWVS11,??,fotify源代码检测工具

搜索引擎安利

startpage.com

duckduckgo

dogedoge.com