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

  • A+
所属分类:安全开发
渗透测试人员一篇文章入门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版本



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



1.3.Python集成开发环境安装

1.3.1.

Pycharm

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



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

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.

不需要声明数据类型


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

2.2.2.

代码语句不需要加分号


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

2.2.3.

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


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



2.3.数据类型

2.3.1.

数值型:整型、浮点型

2.3.2.

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


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


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


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

2.3.3.

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

2.3.4.

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

2.3.5.

查看数据类型

type(x)


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


运行结果


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

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(内容)【尾部插入】


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


运行结果


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


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


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


2.4.2.3.2.


删:del元素


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


运行结果


2.4.2.3.3.

直接通过索引修改数据


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


运行结果

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


2.4.2.3.4.


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


运行结果


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


2.4.2.3.5.


切片:

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

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


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


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


运行结果


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


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.


直接定义键值对


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


运行结果


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


2.4.3.3.2.

del字典名[‘键’]


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


运行结果


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


2.4.3.3.3.


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


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


运行结果


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


2.4.3.3.4.


查:通过键查找


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


运行结果


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







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


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


3.2.2.


while

While 判断条件:

代码块1

代码块2


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


运行结果


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


3.2.3.


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

for变量in序列:

代码块


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


运行结果


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



3.3.函数


一段可重复使用的代码段


3.3.1.


定义函数的原因:

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

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


3.3.2.


函数定义语法

def函数名(参数列表):

代码段

return返回值


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


3.3.3.


注意点

  • 1.冒号

  • 2.缩进

  • 3.返回值:所有函数都有返回值,如果未指定返回值,则默认返回None

    (如print 函数)

3.3.4.


传参方式


3.3.4.1.


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


print('a=%d' % a) 


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


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


运行结果


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


3.3.4.2.


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


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


运行结果


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


文件读写



3.4.文件读写


3.4.1.


基本步骤


  • 1.指定文件名

  • 2.通过open方法创建一个文件对象

  • 3.调用文件对象的相关方法执行读/写操作

  • 4.关闭文件


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


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


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


3.4.2.


步骤一:指定文件名


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


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


3.4.3.


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

Open(文件路径,权限)


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


3.4.3.1.


权限


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


3.4.4.

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


3.4.4.1.


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


lread( ):无参数,读取全部内容作为一个字符串返回
lreadline(size):读取一行,最多读取size个字节
lreadlines( ):按行读取,并且每行内容作为一个元素存到列表里,返回该列表


txt中内容


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


3.4.4.1.1.

readline


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


运行结果


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


3.4.4.1.2.

readlines


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


运行结果


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


3.4.4.2


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


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

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


3.4.4.2.1.

write


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


运行结束后txt中内容


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


3.4.4.2.2.

writelines


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


运行结束后txt中内容


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


3.4.5.


步骤四:关闭文件

文件对象.close( )


3.4.5.1.


关闭文件的原因

释放操作系统资源

避免数据丢失


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



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


渗透测试人员一篇文章入门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 = 0i = 0yu =[]while i < len(s):    result = result + int(s[i])    i = i + 1while result != 0:    yu.append(result % 10)    result = int(result/10)a = len(yu)j = a - 1while j > 0:    print(read[yu[j]],end =' ')    j = j - 1print(read[yu[0]])


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




end



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

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: