前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >渗透测试人员一篇文章入门python语言

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

作者头像
释然
发布2020-11-23 12:01:45
9910
发布2020-11-23 12:01:45
举报
文章被收录于专栏:释然IT杂谈释然IT杂谈

前言

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.
创建语法:大括号
代码语言:javascript
复制
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()从键盘接收输入,输入默认是字符串类型

代码语言:javascript
复制
a = input()

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

代码语言:javascript
复制
l = len(str)

% 取余

代码语言:javascript
复制
sum = x%10

/ 除以

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

代码语言:javascript
复制
num = num/3
代码语言:javascript
复制
print(a, end = ' ')

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

4.3.题目来源于PAT

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

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

提交语言记得选择python

4.4.答案

代码语言:javascript
复制
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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-11-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 释然IT杂谈 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.1.Python下载
    • 1.1.1.
      • Windows平台Python下载
      • 1.2.Python安装
        • 1.2.1.
          • Python 环境配置
            • 1.2.2.
              • Python安装情况检查
              • 1.3.Python集成开发环境安装
                • 1.3.1.
                  • Pycharm
                    • 1.3.2.
                      • 功能
                        • 1.3.3.
                          • Pycharm下载
                          • 2.1.Python简介
                            • 2.1.1.
                              • 动态类型语言
                                • 2.1.2.
                                  • 静态类型语言
                                  • 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.
                                                                  • 查看数据类型
                                                                    • 2.3.6.
                                                                      • 数据类型之间的转换
                                                                      • 2.4.容器
                                                                      • 数据的存储结构,能够更好地管理数据
                                                                        • 2.4.1.
                                                                          • Python中常用的容器
                                                                            • 2.4.2.
                                                                              • 列表list:类似C语言里的数组
                                                                                • 2.4.2.1.
                                                                                • 特点:通过索引访问(索引从0开始),列表内数据可以修改
                                                                                • 2.4.2.2.
                                                                                • 创建语法(中括号)
                                                                                • listA = ['a', 'b', 'c']
                                                                                • 2.4.2.3.
                                                                                • 列表操作
                                                                              • 2.4.3.
                                                                                • 字典 dict
                                                                                  • 2.4.3.1.
                                                                                  • 特点:以键值对的形式存储数据,通过“键”访问“值”
                                                                                  • 2.4.3.2.
                                                                                  • 创建语法:大括号
                                                                                  • 2.4.3.3.
                                                                                  • 字典操作
                                                                                • 3.1.1.
                                                                                  • 常用的条件控制语句
                                                                                    • 3.1.2.
                                                                                      • 运行逻辑:
                                                                                      • 3.2.循环语句
                                                                                      • 循环语句可以帮我们重复执行某些代码
                                                                                        • 3.2.1.
                                                                                          • 常用的条件控制语句
                                                                                            • 3.2.2.
                                                                                              • while
                                                                                                • 3.2.3.
                                                                                                  • for:for循环可以遍历任何序列项目,如列表、字符串等
                                                                                                  • 3.3.函数
                                                                                                    • 3.3.1.
                                                                                                      • 定义函数的原因:
                                                                                                        • 3.3.2.
                                                                                                          • 函数定义语法
                                                                                                            • 3.3.3.
                                                                                                              • 注意点
                                                                                                                • 3.3.4.
                                                                                                                  • 传参方式
                                                                                                                    • 3.3.4.1.
                                                                                                                    • 通过位置传参:按照参数的顺序和位置传参
                                                                                                                    • 3.3.4.2.
                                                                                                                    • 通过关键字传参:指定参数名进行传参
                                                                                                                • 3.4.文件读写
                                                                                                                  • 3.4.1.
                                                                                                                    • 基本步骤
                                                                                                                      • 3.4.2.
                                                                                                                        • 步骤一:指定文件名
                                                                                                                          • 3.4.3.
                                                                                                                            • 步骤二:通过open方法创建文件对象
                                                                                                                              • 3.4.3.1.
                                                                                                                              • 权限
                                                                                                                            • 3.4.4.
                                                                                                                              • 步骤三:调用文件对象的相关方法执行读/写操作
                                                                                                                                • 3.4.4.1.
                                                                                                                                • 读:调用文件对象的read/readline/readlines方法
                                                                                                                                • 3.4.4.2
                                                                                                                                • .写:调用文件对象的write/writelines方法
                                                                                                                              • 3.4.5.
                                                                                                                                • 步骤四:关闭文件
                                                                                                                                  • 3.4.5.1.
                                                                                                                                  • 关闭文件的原因
                                                                                                                              • 3.5.异常处理
                                                                                                                                • 3.5.1.
                                                                                                                                  • 异常的含义
                                                                                                                                    • 3.5.2.
                                                                                                                                      • 为什么要处理异常?
                                                                                                                                        • 3.5.3.
                                                                                                                                          • 处理方式 try-except
                                                                                                                                            • 3.5.4.
                                                                                                                                              • 模块定义
                                                                                                                                                • 3.5.5.
                                                                                                                                                  • 模块安装
                                                                                                                                                    • 3.5.6.
                                                                                                                                                      • 模块导入
                                                                                                                                                        • 4.1.1.
                                                                                                                                                          • 输入格式:
                                                                                                                                                            • 4.1.2.
                                                                                                                                                              • 输出格式:
                                                                                                                                                                • 4.1.3.
                                                                                                                                                                  • 输入样例:
                                                                                                                                                                    • 4.1.4.
                                                                                                                                                                      • 输出样例:
                                                                                                                                                                      • 4.2.提示
                                                                                                                                                                      • 4.3.题目来源于PAT
                                                                                                                                                                      • 4.4.答案
                                                                                                                                                                      相关产品与服务
                                                                                                                                                                      容器服务
                                                                                                                                                                      腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
                                                                                                                                                                      领券
                                                                                                                                                                      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档