简单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