Python从0到POC编写--基础

什么是EXP、POC、CVE:

在某个漏洞出现的时候,会经常看到 exp啊,poc啊什么鬼的,

那么这些究竟是什么东西??

余弦大大说:

POCProof Of Concept,观点验证程序。

运行这个程序就可以得到预期的结果,验证了观点。

再简单点,就是测试的代码。。。


EXPexploit(漏洞利用程序),就是利用代码


CVECommon Vulnerabilities & Exposures 公共漏洞和暴露。

简单的说,就是我们熟悉的 漏洞信息库。


输入输出:

啰嗦一堆之后,本节终于要进入Python环节了

Python语法比较简单,这里就不做更多说明了。

首先来了解一下Python的输入输出,

输入这个没啥好讲的,就是直接在控制台上写代码,

输出常用的有两种方式,一种是 表达式语句 ,另外一种是 print()


数据类型:

Python3中有6个标准数据类型:

  1. Number(数字)
  2. String(字符串)
  3. List(列表)
  4. Tuple(元组)
  5. Sets(集合)
  6. Dictionary(字典)

1. Number(数字)

数字类型包括整数、浮点数,

负数 、0 、正数都是整数,

例如:


2. String(字符串)

使用 '(单引号) 或者 "(双引号) 括起来的

例如:

复制代码
"hello world"

3. List(列表)

列表是使用方括号括 [] 起来的,

例如:

复制代码
list2 = [1,2,3,"小明",10.1,[1,2,3]]

一个列表里面可以存在多种类型,比如整型、浮点型、字符串,还可以包含另外一个列表

他们之间使用逗号分隔。

另外,有两个比较常用的函数:

  1. append() 函数是将参数作为一个元素增加到列表的末尾。
  2. extend() 方法则是将参数作为一个列表去扩展列表的末尾。

例如,使用 append() 函数向列表list2末尾增加元素

复制代码
list2.append(1)  # 向列表list2末尾增加一个整数

list2.append("hello")  # 向列表list2末尾增加一个字符串

list2.append([1,2,3])  # 向列表list2末尾增加一个列表

例如,使用 extend() 函数向列表list2末尾增加元素

复制代码
list2.extend([1,2,3])

append()extend() 都是向列表末尾增加元素,我们来看看两者的区别


列表切片:

与字符串的索引一样,列表索引从0开始。

获取第一个元素:

复制代码
list2[0]

获取索引值1到5的元素**(包含1但是不包含5,前包后不包)**:

复制代码
list2[1:5]

获取索引值6后面的全部元素**(包含6,前包)**:

复制代码
list2[6:]

获取索引值6前面的全部元素**(不包含6,后不包)**:

复制代码
list2[:6]

获取索引值倒数第2前面的全部元素**(包含2)**:

复制代码
list2[:-2]

列表删除:

删除列表中的元素可以使用 del 函数 或者 指定为空 ,

例如: 删除第一个元素

复制代码
del list2[0]  # 删除第一个元素

删除索引值 2到5 的元素:

复制代码
list2[2:5] = []  # 指定为空

删除整个列表:

复制代码
del list2

或者:

复制代码
list2 = []

如果我们想要改变某个元素的值,可以这样

复制代码
list2[0] = 233   # 将第一个元素的值改变为 整数233,如果使用单引号或者双引号就是字符串

4. Tuple(元组)

元组使用 小括号() 来定义,或者使用逗号

例:

复制代码
tup1 = (1,2,3)

或者:

复制代码
tup1 = 1,2,3

如果只有一个元素的时候,需要在元素后面添加逗号,否则括号会被当作运算符使用。


元祖一旦定义理论上不能进行增删改查,

如果非要修改,可以使用切片的方法,

例如:

复制代码
tup1 = (1,2,3,4,5,6)
tup1 = tup1[:2] + ("小明",) + tup1[2:]

添加的东西也一定要是元祖,


5. Sets(集合)

集合是一个无序的不重复元素序列。

可以使用 set() 或者 花括号**{ }** 创建集合,

例如:

复制代码
a = set('abcdefggfedcba')

或者:

复制代码
b = {1,2,3,4,5,5,4,3,2,1}

可以使用 addremove 添加删除集合中的元素

但是集合不支持通过索引值来查找元素


6. Dictionary(字典)

当索引不好用的时候,我们可以使用字典。

字典是另一种可变容器模型,且可存储任意类型对象。

字典的每个键值(key=>value),对用冒号(:)分割,

每个对之间用逗号 , 分割,

整个字典包括在花括号 {}


创建字典

方法1:

复制代码
dict1 = { 'a':123,'b':456,'7':789 }

方法2:

复制代码
dict2 = dict((('a',123),('b',456),('7',789)))

使用方法2的时候,注意键值对是使用逗号,

如果要访问某个元素,我们可以通过键名来查找对应的值,

例如:

复制代码
dict1['a']

流程控制:

if语句:

单向分支:

复制代码
if 1 < 2:
	print('窝喜欢')

双向分支:

复制代码
if 1 < 2:
    print('窝喜欢你')
else:
    print('窝还是喜欢你')

多项分支:

复制代码
if 1 < 2:
    print('窝喜欢')
elif 2 < 1:
    print('窝还是喜欢你')
else:
    print('窝真喜欢你')

巢状分支:

就是条件嵌套。

复制代码
if 1 < 2:
    print('窝喜欢')
	if 2 < 1:
    	print('窝还是喜欢你')
else:
    print('窝真喜欢你')

while语句:

语法:

复制代码
while 条件:
	循环体

例1:

复制代码
count = 0
while count <= 10 : 
    print("loop ", count)
    if count == 5:
    	break
    count +=1 

break:用于结束一个循环

count5 的时候,结束此次循环。


例1:

复制代码
count = 0
while count <= 10 : 
    print("loop ", count)
    if count == 5:
    	continue
    count +=1

continue:只是终止本次循环,后面会接着继续循环。


while else 语句:

例:

复制代码
count = 0
while count <= 5 : 
    print("loop ", count)
    count +=1
else:
	print("循环结束啦!!!");

else 作用是指,当 while 循环正常执行完,中间没有被 break 中止的话,就会执行else后面的语句,

如果执行过程中被 break ,就不会执行else的语句。

相关推荐
risc12345616 分钟前
复杂网络理论
安全
powerfulhell17 分钟前
寒假python作业5
java·前端·python
1尢晞118 分钟前
Java学习
java·开发语言
铉铉这波能秀24 分钟前
LeetCode Hot100 中 enumerate 函数的妙用(2026.2月版)
数据结构·python·算法·leetcode·职场和发展·开发
毕设源码-赖学姐26 分钟前
【开题答辩全过程】以 基于python的电影推荐系统为例,包含答辩的问题和答案
开发语言·python
敲键盘的生活28 分钟前
MoneyPrinter重构之一:用nicegui调用大模型生成视频文案
python·重构·aigc·ai编程·ai写作
小邓睡不饱耶30 分钟前
2026 CSDN榜单封神!3大热门技术+5个大厂案例,新手也能直接抄作业
python·ai
星辰_mya31 分钟前
Elasticsearch线上问题之慢查询
java·开发语言·jvm
南极星100534 分钟前
我的创作纪念日--128天
java·python·opencv·职场和发展
前端小菜袅34 分钟前
PC端原样显示移动端页面方案
开发语言·前端·javascript·postcss·px-to-viewport·移动端适配pc端