专栏首页释然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杂谈(gh_ad4551519762)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-11-18

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 网络安全自学篇(十五)| Python攻防之多线程、C段扫描和数据库编程(二)

    自幼受贵州大山的熏陶,养成了诚实质朴的性格。经过寒窗苦读,考入BIT,为完成自己的教师梦,放弃IT、航天等工作,成为贵财一名大学教师,并想把自己所学所感真心传授...

    释然
  • 运维必须掌握的 Python 宝典:值得每天复习一遍

    本文旨在更好地总结 Python 基础知识,力求简明扼要,以供实战演练时能够快速查询遗忘的知识点。

    释然
  • 企业网络中的安全设计

    作为保护网络秩序的重要一环,网络安全从来都是网络管理人员日常工作中的一大重任。不出问题则以,出问题都是大问题。

    释然
  • 如何直观地理解程序的运行过程?

    了解代码的执行过程是编程的基本要求。一个熟练的编程老手只需要用肉眼看着代码,就能对其运行的过程有所了解。然而对于刚接触编程不久的新手来说,这种事情就没那么显而易...

    Crossin先生
  • 5种方法,加密你的Python代码 !

    Python越来越热门了,2019年3月TIOBE编程语言排行榜上,Python更是罕见的击败了“霸榜三巨头”之一的C++,挤进前三。

    诸葛青云
  • 10分钟教你用YAPF让Python代码瞬间从丑陋变漂亮

    要把Python代码写漂亮,必须遵循PEP8 Python编码规范:《PEP 8 -- Style Guide for Python Code》。

    短短的路走走停停
  • Python 高性能编程

    更好地掌握 numpy、Cython 和剖析器;了解 Python 如何抽象化底层的计算机架构;使用剖析手段来寻找 CPU 时间和内存使用的瓶颈;通过选择合适的...

    用户7886150
  • 30个Python程序员需要知道的编程技巧,可以让你的工作事半功倍!

    在上面代码中,赋值的右侧形成了一个新元组,而左侧则立刻将该(未被引用的)元组解包到名称<a>和<b>。

    QQ1622479435
  • 技术 | Python从零开始系列连载(二十三)

    为了解答大家学习Python时遇到各种常见问题,小灯塔特地整理了一系列从零开始的入门到熟练的系列连载,每周五准时推出,欢迎大家学积极学习转载~

    灯塔大数据
  • 【IT峰播】如何选择要入行的编程语言

    想进入编程行业要做一名程序员,选择一门编程语言超级重要,直接会决定你未来的发展方向。

    学习猿地

作者介绍

精选专题

活动推荐

扫码关注云+社区

领取腾讯云代金券