学习
实践
活动
工具
TVP
写文章
专栏首页释然IT杂谈渗透测试人员一篇文章入门python语言

渗透测试人员一篇文章入门python语言

前言

python是一门强大的脚本语言,学好python,能让渗透更加高效。

python在设计上坚持了清晰划一的风格,这使得python成为一门易读、易维护,并且被大量用户所欢迎的、用途广泛的语言。

1.Python及其集成开发环境安装

1.1.Python下载

https://www.python.org/downloads/

1.1.1.

Windows平台Python下载

https://www.python.org/downloads/windows/

1.2.Python安装

1.2.1.

Python 环境配置

安装时记得勾选Add Python x.x to PATH

1.2.2.

Python安装情况检查

Win+R,输入cmd调出命令提示符,

输入python --version可查看当前已安装的python版本

1.3.Python集成开发环境安装

1.3.1.

Pycharm

由JetBrains打造的一款Python IDE,支持macOS、Windows、Linux系统

1.3.2.

功能

调试、语法高亮、项目管理、代码跳转、智能提示、单元测试、版本

控制……

1.3.3.

Pycharm下载

https://www.jetbrains.com/pycharm/download/

2.Python基础知识

2.1.Python简介

Python是一种动态类型语言

2.1.1.

动态类型语言

在运行阶段才做数据类型检查,即编程时不需要指定数据类型,如Python。

2.1.2.

静态类型语言

静态类型语言:在编译阶段会对数据类型进行检查,即编程时就要声明变量的数据类型,如C/C++、Java。

2.2.语法特点

2.2.1.

不需要声明数据类型

2.2.2.

代码语句不需要加分号

2.2.3.

缩进决定代码块范围,不需要使用大括号

2.3.数据类型

2.3.1.

数值型:整型、浮点型

2.3.2.

字符串:单引号、双引号、三引号

2.3.3.

布尔型:表示真/假的变量,只有True/False两个值

2.3.4.

容器:列表、元组、字典、集合

2.3.5.

查看数据类型

type(x)

运行结果

2.3.6.

数据类型之间的转换

  • int(x)——将x转换为一个整数
  • float(x)—将x转换为一个浮点数
  • str(x)——将x转化为一个字符串

2.4.容器

数据的存储结构,能够更好地管理数据

2.4.1.

Python中常用的容器

  • 列表list
  • 字典dict
  • 元组tuple
  • 集合set

2.4.2.

列表list:类似C语言里的数组

2.4.2.1.

特点:通过索引访问(索引从0开始),列表内数据可以修改

2.4.2.2.

创建语法(中括号)

listA = ['a', 'b', 'c']

一个列表里可以存放不同数据类型的对象

listB = ['a', 10, True]

2.4.2.3.

列表操作

2.4.2.3.1.
增:Append(内容)【尾部插入】

运行结果

Insert(索引,内容)【指定位置插入】

2.4.2.3.2.
删:del元素

运行结果

2.4.2.3.3.

直接通过索引修改数据

运行结果

2.4.2.3.4.

运行结果

2.4.2.3.5.
切片:

对指定范围的数据进行操作

列表名 [起始索引:结束索引]

【结束索引不包含在切片内】

运行结果

2.4.3.

字典 dict

2.4.3.1.

特点:以键值对的形式存储数据,通过“键”访问“值”

2.4.3.2.

创建语法:大括号

dictA = {'name':'xyy',  'age':16, 'grade':12}
  • 键值对之间通过逗号分隔
  • “键”与“值”之间通过冒号连接
  • “键”要用引号修饰
  • “键”不能重复,但“值”可以重复

2.4.3.3.

字典操作

2.4.3.3.1.

直接定义键值对

运行结果

2.4.3.3.2.

del字典名[‘键’]

运行结果

2.4.3.3.3.
改:直接通过键修改对应的值

运行结果

2.4.3.3.4.
查:通过键查找

运行结果

3.Python进阶知识

3.1.条件控制语句

条件控制语句是根据一条或多条语句的执行结果(True或者False)来决定程序执行流程的语句。

3.1.1.

常用的条件控制语句

if 条件: 代码块1

else : 代码块2

3.1.2.

运行逻辑:

  • 如果“条件”结果为True,则执行代码块1;
  • 如果“条件”结果为False,则执行代码块2;

【条件控制语句中,缩进决定代码块范围】

3.2.循环语句

循环语句可以帮我们重复执行某些代码

3.2.1.

常用的条件控制语句

While,for

3.2.2.

while

While 判断条件:

代码块1

代码块2

运行结果

3.2.3.

for:for循环可以遍历任何序列项目,如列表、字符串等

for变量in序列:

代码块

运行结果

3.3.函数

一段可重复使用的代码段

3.3.1.

定义函数的原因:

可以提高代码的重复利用率

将程序模块化,能够更好地定位和隔离错误代码

3.3.2.

函数定义语法

def函数名(参数列表):

代码段

return返回值

3.3.3.

注意点

  • 1.冒号
  • 2.缩进
  • 3.返回值:所有函数都有返回值,如果未指定返回值,则默认返回None (如print 函数)

3.3.4.

传参方式

3.3.4.1.

通过位置传参:按照参数的顺序和位置传参

print('a=%d' % a)

表示输出:a=变量a的值(类型为整型)

运行结果

3.3.4.2.

通过关键字传参:指定参数名进行传参

运行结果

文件读写

3.4.文件读写

3.4.1.

基本步骤

  • 1.指定文件名
  • 2.通过open方法创建一个文件对象
  • 3.调用文件对象的相关方法执行读/写操作
  • 4.关闭文件

运行结束后,xyy.txt中成功写入hello

3.4.2.

步骤一:指定文件名

字母r:表示该字符串为原始字符串,即忽略其中的转义字符

3.4.3.

步骤二:通过open方法创建文件对象

Open(文件路径,权限)

3.4.3.1.

权限

3.4.4.

步骤三:调用文件对象的相关方法执行读/写操作

3.4.4.1.

读:调用文件对象的read/readline/readlines方法

lread( ):无参数,读取全部内容作为一个字符串返回

lreadline(size):读取一行,最多读取size个字节

lreadlines( ):按行读取,并且每行内容作为一个元素存到列表里,返回该列表

txt中内容

3.4.4.1.1.
readline

运行结果

3.4.4.1.2.
readlines

运行结果

3.4.4.2

.写:调用文件对象的write/writelines方法

lwrite(str)参数为字符串,将字符串写入文件

lwritelines(list)参数为列表,将列表中的每个元素依次写入文件

3.4.4.2.1.
write

运行结束后txt中内容

3.4.4.2.2.
writelines

运行结束后txt中内容

3.4.5.

步骤四:关闭文件

文件对象.close( )

3.4.5.1.

关闭文件的原因

释放操作系统资源

避免数据丢失

3.5.异常处理

3.5.1.

异常的含义

当程序中出现错误时,为了避免程序继续错误地执行,程序会中断自己并输出该错误的提示信息(抛出一个异常)。

因此,异常处理机制本质上是一种保护机制。

3.5.2.

为什么要处理异常?

首先,告诉程序如何处理指定的错误

(以更优雅的方式去处理错误,而不是强制抛出异常)

其次,抛出的异常会暴露很多重要信息,包括文件路径、代码内容和错误信息等

3.5.3.

处理方式 try-except

将可能出错的代码放到try里面

通过except指明异常类型。如果try代码块里出现这种异常,就执行except里面的代码

3.5.4.

模块定义

.py文件,也是python代码,可以是已有的的函数,也可以是自定义类——是可以调用的代码

3.5.5.

模块安装

要想使用python库里的模块,需要在命令行中使用如下命令安装模块

pip install 模块名

3.5.6.

模块导入

要想使用python库里的模块,需要在命令行中使用如下命令安装模块

import 模块名

4.Python程序练习题

4.1.题目

读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字。

4.1.1.

输入格式:

每个测试输入包含 1 个测试用例,即给出自然数 n 的值。这里保证 n 小于 10100。

4.1.2.

输出格式:

在一行内输出 n 的各位数字之和的每一位,拼音数字间有 1 空格,但一行中最后一个拼音数字后没有空格。

4.1.3.

输入样例:

1234567890987654321123456789

4.1.4.

输出样例:

yi san wu

4.2.提示

input()从键盘接收输入,输入默认是字符串类型

a = input()

len(字符串) 返回字符串长度值

l = len(str)

% 取余

sum = x%10

/ 除以

Python默认是浮点数除法,有小数点

num = num/3
print(a, end = ' ')

表示输出变量a加上一个空格

4.3.题目来源于PAT

https://pintia.cn/problem-sets/994805260223102976/problems/994805324509200384

可以提交代码查看是否正确,题目不检验代码,只检验输出

提交语言记得选择python

4.4.答案

s = input()
read = {0: 'ling', 1: 'yi', 2: 'er', 3: 'san', 4: 'si', 5: 'wu', 6: 'liu', 7: 'qi', 8: 'ba', 9: 'jiu'}
result = 0
i = 0
yu =[]
while i < len(s):
    result = result + int(s[i])
    i = i + 1
while result != 0:
    yu.append(result % 10)
    result = int(result/10)
a = len(yu)
j = a - 1
while j > 0:
    print(read[yu[j]],end =' ')
    j = j - 1
print(read[yu[0]])

end

文章分享自微信公众号:
释然IT杂谈

本文参与 腾讯云自媒体分享计划 ,欢迎热爱写作的你一起参与!

原始发表时间:2020-11-18
如有侵权,请联系 cloudcommunity@tencent.com 删除。
登录 后参与评论
0 条评论

相关文章

  • 一篇文章入门API测试

    API是Application Programming Interface的简写。

    苦叶子
  • 一篇文章入门API测试

    API是Application Programming Interface的简写。

    苦叶子
  • 专为渗透测试人员设计的Python工具大合集

    如果你对漏洞挖掘、逆向工程分析或渗透测试感兴趣的话,我第一个要推荐给你的就是Python编程语言。Python不仅语法简单上手容易,而且它还有大量功能强大的库和...

    小小科
  • 专为渗透测试人员设计的 Python 工具大合集

    如果你对漏洞挖掘、逆向工程分析或渗透测试感兴趣的话,我第一个要推荐给你的就是Python编程语言。Python不仅语法简单上手容易,而且它还有大量功能强大的库和...

    企鹅号小编
  • 一篇文章让你入门API测试

    什么是API API是Application Programming Interface的简写。 实现了两个或多个独立系统或模块间的通信和数据交换能力。 什么是...

    苦叶子
  • 一篇文章让你入门API测试

    什么是API API是Application Programming Interface的简写。 实现了两个或多个独立系统或模块间的通信和数据交换能力。 什么是...

    苦叶子
  • 一篇文章入门Jmeter性能测试【经典长文】

    进入...\apache-jmeter-5.1\bin目录,双击jmeter.bat启动Jmeter,如果正常打``开,则安装成功。

    用户2149234
  • 一篇文章带你入门Go语言基础之并发

    Hey,大家好,我是码农星期八,终于到了Go中最牛掰的地方,并发,这也是Go为什么能快速火的原因。

    Go进阶者
  • 这是一篇“不一样”的真实渗透测试案例分析文章

    同时感谢n1nty、pr0mise、2月30日对本文提出的宝贵建议。文章内容较多,建议点击文末“阅读全文”,跳转到博客阅读。

    Gcow安全团队
  • 轻松学Python,一篇文章带你快速入门

    Python基础01 Hello World! ? Python命令行 假设你已经安装好了Python, 那么在命令提示符输入: python 将直接进入pyt...

    企鹅号小编
  • Python 多线程入门,这一篇文章就够了

    提及 Python 啊,我想你首先想到的就是「人生苦短,我用 Python」了。现在 Python 的热度可谓是非常的高,感觉程序员要是不学 Python 的话...

    与你一起学算法
  • 学习R语言,一篇文章让你从懵圈到入门

    PivotalR:用于读取Pivitol(Greenplum)和HAWQ数据库中的数据

    华章科技
  • [长文] 学Python不用培训班,一篇文章带你入门

    最近有许多小伙伴后台联系我,说目前想要学习Python,但是没有一份很好的资料入门。一方面的确现在市面上Python的资料过多,导致新手会不知如何选择,另一个问...

    TechFlow-承志
  • 学习R语言,一篇文章让你从懵圈到入门

    在实际工作中,每个数据科学项目各不相同,但基本都遵循一定的通用流程。具体如下: 数据科学工作流程 数据导入 数据整理 反复理解数据 数据可视化 数据转换 ...

    小莹莹
  • 学习R语言,一篇文章让你从懵圈到入门

    在实际工作中,每个数据科学项目各不相同,但基本都遵循一定的通用流程。具体如下: ? 数据科学工作流程: 1.数据导入 2.数据整理 3.反复理解数据 数据可视...

    CDA数据分析师
  • 一篇文章,轻松入门Python中的正则表达式

    正则表达式,广泛用于与文字、字符串的格式化,放到Python里使用,再合适不过;尤其是在编写爬虫时,用正则表达式匹配URL、匹配IP等,正则表达式都是一个简单、...

    Mintimate
  • 一篇文章带你了解编程语言能干什么(java,js,python)

    我们在大学学了很多的语言,但是学到的只是基础,俗话说得好,师傅领进门,修行靠个人,大学老师只是我们的引路人,想学的多就要靠自己。

    代码哈士奇
  • 渗透测试入门指南与路线规划(全文版)

    我本非安全大牛,水平有限,所以自然亲民,和许多渗透测试的初学者打得火热。这其中大部分是大学生,还有工作多年,但一直对网络安全热情不减的热血之人。许多同学一直在努...

    用户1631416
  • 2022年零基础自学网络安全/Web安全,看这一篇就够了

    作为一个安全从业人员,我自知web安全的概念太过于宽泛,我本人了解的也并不够精深,还需要继续学习。

    技术zhai

作者介绍

精选专题

活动推荐

扫码关注腾讯云开发者

领取腾讯云代金券