在Web安全领域中,Python也成了重中之重,在后期可以进行一些POC以及EXP的开发,或者一些常用小工具脚本的开发,为自己增加便捷!
所以本人打算更新一系列Python安全开发的文章。从零到POC的编写。
1.初识数据类型
在本人接触的这些编程语言中,可能做php或者python等开发,许多人都对数据类型没有一个大体的认识,而本人在做C++开发相关的时候,数据类型就显得尤为重要了,因为C++语法的严格,所以在定义使用一些变量的时候,都要加上数据类型,例如:
int a;//一个int类型
float b;//float类型
char c;//char类型
如上可以看到,在C++中数据类型的严格性。
而Python不同,在使用Python变量的时候,直接赋值给变量即可,例如:
a = '字符串' #string字符串类型
b = 12 # int型
c = True #bool布尔类型
大家可以看如上,为Python中变量进行赋值不同的数据类型,是非常方便和简单的。
2. 数据类型分两类
数据类型可以分为:数字类型和组合类型
数据类型分为基础的数字类型和比较复杂的组合类型,
数字类型又分为:整型、浮点型、布尔型、和复数类型
组合类型:字符串 列表 元祖 字典
布尔型:True False
现在数据类型有了,而我们需要把数据类型存到“变量”里面,变量可以理解为是一个盒子,盒子里装的是数据!
补充一下,在python中打印数据类型通过 type函数
例如:
a = 0
print(type(a)) #打印的是a的数据类型
一.整形
例如-88,11,72,99这种数字,都称为整形数据。
如下图,我定义了三个变量,a,b,c
a和b,赋值了一个十进制的数字,并通过print进行打印输出。
而变量c输出的数据为22,这是因为 0x为十六进制,十六进制的16被打印出来了
二.浮点型
浮点型用来表示实数,比如1.23,3.14等,其实就是小数
这里咱们不做过多深入,其实在真正开发中,很少用到一些冷门的细节,当遇到一些冷门细节在了解即可。
如下图,可以看到,变量a为3.1415,通过type函数获取到数据类型为float
三.布尔类型
布尔类型(bool)只有True(真)和False(假),这种数据类型用的很多,True对应的整数1,False对应的整数为0。这也是一种特殊的整形。
任何对象都要布尔属性
None,False,任何为0的数字类型 0,0.0,空序列,空字典等,都是为False的。
如下图,可以看到bool为空的时候,就是没数据,为False
当随便输入个123的时候,就是为True,因为有数据,所以就是True(除了0)
算术运算符,这里不做过多详解,其实就是一些算术方面,可以看如下图。是很简单的。
3. 数据类型转换
常用开发中,通过会用到将数据类型进行转换
int() 将数据类型转换为整形
float() 将数据类型转换为浮点型
bool() 将数据类型转换为布尔类型
例如:定义了一个float类型的变量,当转换为int的时候,可以看到舍弃了小数部分。
4.字符串类型
字符串就是一组由字符构成的序列,
比如,"hello" ,'hello' 可以使用双引号或单引号。
在通俗讲,就是有引号包起来的就是字符串,这样就通俗易懂了吧
#合法的字符串
"hello" , "pyt'hon"
#多行字符串
以一对三引号或三双引号作为边界,以下就是一个多行字符串的例子:
word = """多行字符串
多行字符串"""
#不合法的字符串
'he'llo' "pyth"on"
#不合法字符串的解决方法,
'he'llo' "pyth"on"
这里给大家留个小问题,如上,不合法的字符串错在哪里?大家自己可以思考一下?
解决方法的话,可以使用 转义字符进行转义,解析器此时不再将单引号视为字符串的语法标志。你可以理解为,将后面的数据转义为一个正常的字符串了。这样讲解就通俗易懂了吧。
例子,这就是字符串的使用。
5.字符串初始化
5.1通过%s初始化
这里可以看到 %s,代表的是字符串的意思,而%'met32',表示将%s替换为%后边的'Kter'
字符串初始化
print("我叫%s"%'Kter') %来替换s
print("我叫%s擅长%s"%('Kter','c++'))//也可以通过元组的方式替换
结果:我叫Kter
我叫Kter擅长c++
5.2通过format()初始化
模板字符串由字符串和"{}"组成,{}的作用与%相同
<模板字符串>.format(<参数>)
print("{}擅长的编程语言是C++".format("Kter"))
结果:Kter擅长的编程语言是C++
这里介绍几个字符串函数,比较常用的:
len(字符串)#返回字符串长度
str(参数)#转换为字符串
ord(参数)#将参数转换为ASCII的值
上面三个函数自行测试一下即可
6.列表,元组,字典
元组:由0个或多个不同元素组成的集合,()为标识,用逗号,分割
(3,'s','app')、('张三',452,{'Elric':'钢'})
列表:用[]分割,和元祖类似
字典 由多个键值组成的集合,花括号{}标识,key和value通过冒号(:)分割,
例如 {'中国':'北京','英国','伦敦'}
例子:
print((3,'s','app'))
print([3,'s','app'])
c = {'中国':'北京','英国':'伦敦'}
print(c)
print(c["中国"])
结果:
{'中国': '北京', '英国': '伦敦'}
北京
在上方例子中,其实元组和列表很类型,存的是不同的数据类型的集合,接下来我们看字典,字典分为键和值,我们可以通过键去访问他的值,上方代码中,我定义的中国就是"键",而通过 c["键名"] 就可以访问到对应的值。这里自行测试。
结束语,大概常用的数据类型就这些,大家一定要跟着敲一遍,可能有部分细节没有讲到,我们用到在去了解即可。希望大家关注本公众号
微信搜索关注 "安全族" 长期更新安全资料,扫一扫即可关注安全族!
本文始发于微信公众号(安全族):Python安全开发第一章(数据类型)
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论