一 Python基本语法
python 保留字/关键字
标准库提供了一个 keyword 模块,可以输出当前版本的所有关键字:
keyword kwlist
Python注释
单行注释以 # 开头
多行注释 ''' ''' 或 """ """
行与缩进
Python特色语句是使用缩进来表示代码块,不需要使用大括号 {} 。
缩进的空格数是可变的,但是同一个代码块的语句必须包含相同的缩进空格数
例子:缩进不一致导致的错误
多行语句
语句很长,用反斜杠 \
在 [], {}, 或 () 中的多行语句,不需要使用反斜杠 \,例如:
空行
(1)函数之间、类的方法之间用空行分隔,表示新代码开始
(2)函数、类入口用空行分隔,突出函数入口
(3)空行和缩进不同,不是Python语法的一部分
(4)空行属于程序代码的一部分
代码组
(1)代码组:缩进相同的一组语句构成的一个代码块
(2)if、while、def、class复合语句,首行关键字开头、冒号(:)结束,该行之后的一行或多行代码构成代码组
二 Python基本数据类型
1 python与其他语言变量的区别
(1)python中无需声明变量,变量在赋值之后自动创建。
(2)python中变量无类型,而变量中"对象"有类型
2 python中常见数据类型
- 不可变数据(3 个):Number(数字)、String(字符串)、Tuple(元组);
- 可变数据(3 个):List(列表)、Dictionary(字典)、Set(集合)。
(1)Number数字
int float bool complex(复数)
判断对象类型: type() isinstance()
数值运算
+ - *
/ 除法,得到一个浮点数
// 除法,得到一个整数
% 取余
** 乘方
数据包(packet)(plen数据长度,pkt_id数据包标识符)
数据包生成
对象(p)、scapy类(Ether、Dot1Q、IP、TCP)、函数(seqPad)
数据包配置
字典(pkt_cfg)、字典包含的配置项(act_vport_value、act_vport_ok等)
函数返回值
返回列表[ ]、列表包含元组[ ]、元组内的元素[p,pkt_cfg]
其他配置(被注释掉)
ARP(op=random.randint(1,4))
,这表明在某些情况下,可能需要生成ARP请求或响应,但在这个函数的当前版本中,这部分被排除了