武功县住房和城乡建设局官网站,东莞市营销网站建设,html简单个人主页代码模板,天津个人网站建设前言
以Python编程为主#xff0c;围绕渗透测试展开的一门专栏。专栏内容包括#xff1a; Python基础编程#xff08;Python基础、语法、对象、文件操作#xff0c;错误和异常#xff09;#xff0c;Python高级编程#xff08;正则表达式、网络编程、WEB编程#xff0…前言
以Python编程为主围绕渗透测试展开的一门专栏。专栏内容包括 Python基础编程Python基础、语法、对象、文件操作错误和异常Python高级编程正则表达式、网络编程、WEB编程以及Python安全编程个人博客开发Python爬虫的编写漏洞exp的编写红队-漏洞扫描器开发蓝队-自动化工具等等通过本专栏的学习能把Python编程应用到实际的渗透当中可以提高效率同时拥有新的思路同时也能打造属于自己的武器库工具
基础篇一
Hello World程序
长期以来编程界都认为刚接触一门新语言时如果首先使用它来编写一个在屏幕上显示消息“Hello world!”的程序将给你带来好运。
要使用Python来编写这种Hello World程序只需一行代码
print(Hello world!)这种程序虽然简单却有其用途如果它能够在你的系统上正确地运行你编写的任何Python程序都将如此。 变量
下面来尝试在程序中使用一个变量。在这个文件开头添加一行代码并对第2行代码进行修改如下所示
message Hello Python world!
print(message)我们添加了一个名为message 的变量 。每个变量都存储了一个值 ——与变量相关联的信息。在这里存储的值为文本“Hello Python world!”。
这样程序会输出“Hello Python world!” 数据类型
字符串
大多数程序都定义并收集某种数据然后使用它们来做些有意义的事情。鉴于此对数据进行分类大有裨益。我们将介绍的第一种数据类型是字符串。字符串虽然看似简单但能够以很多不同的方式使用它们。
字符串 就是一系列字符。在Python中用引号括起的都是字符串其中的引号可以是单引号也可以是双引号如下所示
This is a string.
This is also a string.这种灵活性让你能够在字符串中包含引号和撇号
I told my friend, Python is my favorite language!
The language Python is named after Monty Python, not the snake.
One of Pythons strengths is its diverse and supportive community.数字
在编程中经常使用数字来记录游戏得分、表示可视化数据、存储Web应用信息等。Python根据数字的用法以不同的方式处理它们。鉴于整数使用起来最简单下面就先来看看Python是如何管理它们的。
在Python中可对整数执行加 减- 乘* 除/ 运算
2 3
3 - 2
2 * 3
3 / 2程序运行的结果如下 在Python中使用两个乘号表示乘方运算
3 ** 2
3 ** 3
10 ** 6程序运行的结果如下 浮点数
Python将带小数点的数字都称为浮点数 。大多数编程语言都使用了这个术语它指出了这样一个事实小数点可出现在数字的任何位置。每种编程语言都须细心设计以妥善地处理浮点数确保不管小数点出现在什么位置数字的行为都是正常的。
从很大程度上说使用浮点数时都无需考虑其行为。你只需输入要使用的数字Python通常都会按你期望的方式处理它们
0.1 0.1
0.2 0.2
2 * 0.1
2 * 0.2程序运行的结果如下 但需要注意的是结果包含的小数位数可能是不确定的
0.2 0.1
3 * 0.1程序运行的结果如下 注释
在大多数编程语言中注释都是一项很有用的功能。本书前面编写的程序中都只包含Python代码但随着程序越来越大、越来越复杂就应在其中添加说明对你解决问题的方法进行大致的阐述。注释 让你能够使用自然语言在程序中添加说明。
在Python中注释用井号# 标识。井号后面的内容都会被Python解释器忽略如下所示
# 向大家问好
print(Hello Python people!)程序运行的结果如下Python解释器将忽略第1行只执行第2行 列表
列表 由一系列按特定顺序排列的元素组成。你可以创建包含字母表中所有字母、数字0~9或所有家庭成员姓名的列表也可以将任何东西加入列表中其中的元素之间可以没有任何关系。鉴于列表通常包含多个元素给列表指定一个表示复数的名称如letters 、digits 或names 是个不错的主意。
在Python中用方括号[] 来表示列表并用逗号来分隔其中的元素。下面是一个简单的列表示例这个列表包含几种自行车
bicycles [trek, cannondale, redline, specialized]
print(bicycles)如果你让Python将列表打印出来Python将打印列表的内部表示包括方括号程序运行的结果如下 访问列表元素
列表是有序集合因此要访问列表的任何元素只需将该元素的位置或索引告诉Python即可。要访问列表元素可指出列表的名称再指出元素的索引并将其放在方括号内。
例如下面的代码从列表bicycles 中提取第一款自行车
bicycles [trek, cannondale, redline, specialized]
print(bicycles[0])当你请求获取列表元素时Python只返回该元素而不包括方括号和引号在Python中索引是从0开始的而不是从1开始的 如果我们要访问该列表中的第三个元素那我们便可以写出如下程序
bicycles [trek, cannondale, redline, specialized]
print(bicycles[2])程序运行的结果如下 Python为访问最后一个列表元素提供了一种特殊语法。通过将索引指定为-1 可让Python返回最后一个列表元素
bicycles [trek, cannondale, redline, specialized]
print(bicycles[-1])程序运行的结果如下 切片
要创建切片可指定要使用的第一个元素和最后一个元素的索引。与函数range() 一样Python在到达你指定的第二个索引前面的元素后停止。要输出列表中的前三个元素需要指定索引0~3这将输出分别为0 、1 和2 的元素。
下面的示例处理的是一个运动队成员列表
players [charles, martina, michael, florence, eli]
print(players[0:3])代码打印该列表的一个切片其中只包含三名队员。输出也是一个列表其中包含前三名队员程序运行的结果如下 你可以生成列表的任何子集例如如果你要提取列表的第2~4个元素可将起始索引指定为1 并将终止索引指定为4
players [charles, martina, michael, florence, eli]
print(players[1:4])这一次切片始于’marita’ 终于’florence’ 程序运行的结果如下 如果你没有指定第一个索引Python将自动从列表开头开始
players [charles, martina, michael, florence, eli]
print(players[:4])由于没有指定起始索引Python从列表开头开始提取程序运行的结果如下 无论列表多长这种语法都能够让你输出从特定位置到列表末尾的所有元素。负数索引返回离列表末尾相应距离的元素因此你可以输出列表末尾的任何切片。例如如果你要输出名单上的最后三名队员可使用切片players[-3:]
players [charles, martina, michael, florence, eli]
print(players[-3:])上述代码打印最后三名队员的名字即便队员名单的长度发生变化也依然如此程序运行的结果如下 元组
列表非常适合用于存储在程序运行期间可能变化的数据集。列表是可以修改的这对处理网站的用户列表或游戏中的角色列表至关重要。然而有时候你需要创建一系列不可修改的元素元组可以满足这种需求。Python将不能修改的值称为不可变的 而不可变的列表被称为元组 。
定义元组
元组看起来犹如列表但使用圆括号而不是方括号来标识。定义元组后就可以使用索引来访问其元素就像访问列表元素一样。
例如如果有一个大小不应改变的矩形可将其长度和宽度存储在一个元组中从而确保它们是不能修改的
dimensions (200, 50)
print(dimensions[0])
print(dimensions[1])我们首先定义了元组dimensions 为此我们使用了圆括号而不是方括号。接下来我们分别打印该元组的各个元素使用的语法与访问列表元素时使用的语法相同 空行、缩进与多行代码
空行
要将程序的不同部分分开可使用空行。你应该使用空行来组织程序文件但也不能滥用只要按本书的示例展示的那样做就能掌握其中的平衡。例如如果你有5行创建列表的代码还有3行处理该列表的代码那么用一个空行将这两部分隔开是合适的。然而你不应使用三四个空行将它们隔开。
空行不会影响代码的运行但会影响代码的可读性。Python解释器根据水平缩进情况来解读代码但不关心垂直间距。
缩进
建议每级缩进都使用四个空格这既可提高可读性又留下了足够的多级缩进空间。
在字处理文档中大家常常使用制表符而不是空格来缩进。对于字处理文档来说这样做的效果很好但混合使用制表符和空格会让Python解释器感到迷惑。每款文本编辑器都提供了一种设置可将输入的制表符转换为指定数量的空格。你在编写代码时应该使用制表符键但一定要对编辑器进行设置使其在文档中插入空格而不是制表符。
在程序中混合使用制表符和空格可能导致极难解决的问题。如果你混合使用了制表符和空格可将文件中所有的制表符转换为空格大多数编辑器都提供了这样的功能。
多行代码
很多Python程序员都建议每行不超过80字符。最初制定这样的指南时在大多数计算机中终端窗口每行只能容纳79字符当前计算机屏幕每行可容纳的字符数多得多为何还要使用79字符的标准行长呢这里有别的原因。专业程序员通常会在同一个屏幕上打开多个文件使用标准行长可以让他们在屏幕上并排打开两三个文件时能同时看到各个文件的完整行。PEP 8还建议注释的行长都不超过72字符因为有些工具为大型项目自动生成文档时会在每行注释开头添加格式化字符。
有关行长的指南并非不可逾越的红线有些小组将最大行长设置为99字符。在大多数编辑器中都可设置一个视觉标志——通常是一条竖线让你知道不能越过的界线在什么地方。