前言
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循环可以遍历任何序列项目,如列表、字符串等
代码块
运行结果
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方法
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
原文始发于微信公众号(雷石安全实验室):渗透测试人员一篇文章入门python语言