费曼学习法
1.把想要理解的概念写在纸上(确定目标)
2.尝试用简单的语言解释这个概念,想象你要把这个知识讲给别人听(模拟教学)
3.卡壳时,翻书、看视频资料或者求助他人,重新理解,直到能透彻写出解释(反馈)
4.回顾这段概念介绍,如若出现复杂的解释,尽力去简化它,可以用上类比和比喻(简化并重复)
1 渗透测试概述
发展、现状、基本流程、具体方法等
流程(8步):
1.明确信息、
2.信息收集:
3.漏洞探测、
4.漏洞验证、
5.信息分析、
6.获取信息、
7.整理信息、
8.形成报告
2 Python语言基础
2.1 Python序列
1.列表
#(1)创建列表
student=['number','name','age']
print(student)
num=list((1,2,3,4,5,6,7,8,9))
print(num)
print('1-------------------------------------')
#(2)删除列表
list=['m','s','0','8','0','6','7']
print(list)
del list[1]
print(list)
del list
print(list)
print('2-------------------------------------')
#(3)列表尾部添加元素
list=['m','s','0','8','0','6','7']
list.append('8')
print(list)
#添加列表l
l=['hello ni hao']
list.extend(l)
print(list)
print('3-------------------------------------')
#(4)列表指定位置添加元素
list=['m','s',0,8,0,6,7]
demo='.com'
list.insert(7,demo)
print(list)
print('4-------------------------------------')
#(5)删除列表中首次出现的元素
list=['m','s',0,8,0,6,7]
list.remove(8)
print(list)
print('5-------------------------------------')
#(6)删除并返回列表中指定下标元素
list=['m','s',0,8,0,6,7]
list.pop()#默认值为-1
print(list)
list.pop(0)
print(list)
print('6-------------------------------------')
#(7)返回指定元素在列表list中出现的次数
list=['m','s',0,8,0,6,7]
print(list.count(0))
print(list.count('m'))
print('7-------------------------------------')
#(8)将列表list中所有元素逆序
list=['m','s',0,8,0,6,7]
list.reverse()#逆序函数
print(list)
print('8-------------------------------------')
#(9)对列表中的元素进行排序
#key用来指定排序顺序,reverse决定是升序(False)还是降序(True)
list=['m','s',0,8,0,6,7]
list.sort(key=str,reverse=False)
print(list)
print('9-------------------------------------')
2.元组
tuple=('m','s',0,8,0,6,7)
print(tuple)
- 元组与列表不同,元组属于不可变序列,一旦创建后就不可对其进行增删改查,但是对元素的访问速度要比列表快的多,不能修改,代码更安全
3.字典
- Python中字典是包含若干“键:值”元素的可变序列,字典中的键不能重复,而值可以重复
dic={'lab':'ms08067','url':'http://ms08067.com'}
print(dic)
print('---------------------------------------')
#(1)通过dict()创建字典
person=dict(name='ruler',str='ni hao')
print(person)
print('1-------------------------------------')
#(2)修改字典中的元素
dic={'name':'xiaom ming','age':26,'sex':'male'}
dic['age']=25
print(dic)
print('2-------------------------------------')
#(3)为字典添加新元素
dic={'name':'xiaom ming','age':26}
dic['sex']='male'
print(dic)
print('3-------------------------------------')
#(4)返回字典中的所有元素
dic={'name':'xiaom ming','age':26,'sex':'male'}
print(dic.items())
print('4-------------------------------------')
#(5)删除字典中的元素
dic={'name':'xiaom ming','age':26,'sex':'male'}
del dic['sex']
print(dic)
print('5-------------------------------------')
2.2 Python控制结构
- 三大控制结构:顺序、选择、循环(for/while)
1.选择结构
# x=1
# if(x>0):
# print(x)
StudentScore=int(input('Score of students:'))
if(StudentScore<60):
print('不及格')
if(60<=StudentScore<80):
print('良好')
if(StudentScore>=80):
print('优秀')
2.循环结构
- for循环一般用于有明显边界范围的情况
- while循环一般用于循环次数难以确定的情况
1.for循环
sum=0
for i in range(1,101):
sum=sum+i
else:
print('sum=',sum)
2.while循环
x=int(input('x='))
sum=0
while x!=0:
sum=sum+x
x=x-1
else:
print('sum=',sum)
2.3 文件处理
1.打开文件并创建对象
通过open()函数指定模式打开指定文件,并创建文件对象,函数格式:
open(file,[mode='r[,buffering=-1]'])
2.对文件内容进行操作
读取、写入、追加
(1)向文本文件写入内容
- w:文件存在,清空内容;文件不存在,创建
- x:创建新文件,文件已存在,则抛出异常
- a:追加模式
s='helle world\n'
f=open('demo.txt','w')
f.write(s)
f.close()
s='hello China'
f=open('demo.txt','a')
f.write(s)
f.close()
(2)读取文件的内容
- r:读模式,如果文件不存在,则抛出异常
- +:读写模式
f=open('demo.txt','r')
print(f.read())#读取全部
print(f.readline())#按行读取
print(f.readlines())#读全部行
3.关闭文件对象
-
当操作完文件内容后,一定要关闭文件对象,这样才能确保所做的修改都保存到了文件当中
-
文件操作一般都有遵循:“打开—>读写—>关闭”流程
-
关键字with能够自动管理资源,总能保证文件正常关闭,并且可以在代码执行结束后自动还原开始执行代码块时的现场