社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

Python安全开发第一章(数据类型)

渗透Xiao白帽 • 3 年前 • 331 次点击  
前言

    在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')   %来替换sprint("我叫%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】CS免杀-Shellcode Loader原理(python)

【超详细 | Python】CS免杀-分离+混淆免杀思路

【超详细 | 钟馗之眼】ZoomEye-python命令行的使用

【超详细 | 附EXP】Weblogic CVE-2021-2394 RCE漏洞复现

【超详细】CVE-2020-14882 | Weblogic未授权命令执行漏洞复现

【超详细 | 附PoC】CVE-2021-2109 | Weblogic Server远程代码执行漏洞复现

【漏洞分析 | 附EXP】CVE-2021-21985 VMware vCenter Server 远程代码执行漏洞

【CNVD-2021-30167 | 附PoC】用友NC BeanShell远程代码执行漏洞复现

【奇淫巧技】如何成为一个合格的“FOFA”工程师

【超详细】Microsoft Exchange 远程代码执行漏洞复现【CVE-2020-17144】

【超详细】Fastjson1.2.24反序列化漏洞复现

  记一次HW实战笔记 | 艰难的提权爬坑

走过路过的大佬们留个关注再走呗

往期文章有彩蛋哦

一如既往的学习,一如既往的整理,一如即往的分享。

如侵权请私聊公众号删文


Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/119903
 
331 次点击