- 博客(39)
- 收藏
- 关注
转载 HTTP协议中的URL
文章目录URL的基本概念URL的结构组成语法格式说明protocol(协议)hostname(主机名)port(端口号)path(路径)parameters(参数)query(查询)fragment(信息片断)URL编码格式URL的基本概念在WWW上,每一信息资源都有统一的且在网上唯一的地址,该地址就叫URL(Uniform Resource Locator,统一资源定位符),它是WWW的统一...
2020-04-16 16:11:35
742
原创 HTTP请求方法
文章目录HTTP1.0的请求方法HTTP1.0的三种请求方法GETHEADPOSTGET请求的标准格式POST请求提交表单,上传文件的方法01 multipart/form-data02 application/x-www-form-urlencoded03 application/json04 其他特殊content-typeHEAD请求与GET请求的区别HTTP1.1新增的请求方法HTT...
2020-04-16 11:26:02
242
原创 “百度杯”CTF比赛 九月场 YeserCMS writeup
CMS类型题目一般思路:第一步,判断出cms类型第二步,查询该cms曾经出现的漏洞第三步,然后利用这些漏洞拿到flag.搜yesercms全是writeup…… 就随便点点,文件下载那里发现应该cmseasy才是其真正的cms解题过程Step1 搜索CMSeasy的漏洞百度CMSeasy存在的漏洞,发现存在无限制报错注入,可获取全站信息漏洞参考1:https://www....
2020-03-29 19:39:59
318
原创 【Python进阶】5-4 __slots__ / __call__
文章目录1、前言2、使用__slots__3、使用__call__1、前言正常情况下,当我们定义了一个class,创建了一个class的实例后,我们可以给该实例绑定任何属性和方法,这就是动态语言的灵活性。先定义class:class Student(object): pass然后,尝试给实例绑定一个属性:>>> s = Student()>>&...
2020-02-28 15:19:52
249
原创 【Python进阶】5-3 python中 @property
文章目录使用@property小结任务使用@property在绑定属性时,如果我们直接把属性暴露出去,虽然写起来很简单,但是,没办法检查参数,导致可以把成绩随便改:s = Student()s.score = 9999这显然不合逻辑。为了限制score的范围,可以通过一个set_score()方法来设置成绩,再通过一个get_score()来获取成绩,这样,在set_score()...
2020-02-28 13:49:26
167
原创 【Python进阶】5-2 数学运算 / 类型转换
文章目录1、数学运算2、类型转换1、数学运算Python 提供的基本数据类型 int、float 可以做整数和浮点的四则运算以及乘方等运算。但是,四则运算不局限于int和float,还可以是有理数、矩阵等。要表示有理数,可以用一个Rational类来表示:class Rational(object): def __init__(self, p, q): sel...
2020-02-28 10:42:12
1371
3
原创 【Python进阶】5-1 __str__() / __repr__() / __cmp__() / __len__()
python中 __str__和__repr__如果要把一个类的实例变成 str,就需要实现特殊方法__str__():class Person(object): def __init__(self, name, gender): self.name = name self.gender = gender def __str__(self): ...
2020-02-28 09:34:57
162
原创 【Python进阶】4-4 获取对象信息 | type() / isinstance() / dir()
文章目录1、使用type()2、使用isinstance()3、使用dir()小结当我们拿到一个对象的引用时,如何知道这个对象是什么类型、有哪些方法呢?1、使用type()首先,我们来判断对象类型,使用 type() 函数:基本类型都可以用 type() 判断:>>> type(123)<class 'int'>>>> type('st...
2020-02-27 15:35:23
145
原创 【Python进阶】4-3 多重继承
文章目录1、多重继承MixIn小结2、python中多重继承1、多重继承继承是面向对象编程的一个重要的方式,因为通过继承,子类就可以扩展父类的功能。回忆一下Animal类层次的设计,假设我们要实现以下4种动物:Dog - 狗狗;Bat - 蝙蝠;Parrot - 鹦鹉;Ostrich - 鸵鸟。如果按照哺乳动物和鸟类归类,我们可以设计出这样的类的层次: ...
2020-02-27 14:35:46
186
原创 【Python进阶】4-2 多态 | 什么是多态 / 静态语言vs动态语言 / python中多态
文章目录1、什么是多态“开闭”原则2、静态语言 vs 动态语言小结3、python中多态1、什么是多态要理解什么是多态,我们首先要对数据类型再作一点说明。当我们定义一个class的时候,我们实际上就定义了一种数据类型。我们定义的数据类型和Python自带的数据类型,比如str、list、dict没什么两样:a = list() # a是list类型b = Animal() # b是Anim...
2020-02-27 13:54:27
332
原创 【Python进阶】4-1 继承 | 继承定义 / 继承一个类 / 判断类型isinstance()
文章目录1、什么是继承继承有什么好处?2、Python中继承一个类3、python中判断类型1、什么是继承在OOP程序设计中,[ 面向对象编程(Object Oriented Programming,OOP,面向对象程序设计)是一种计算机编程架构。OOP 的一条基本原则是计算机程序是由单个能够起到子程序作用的单元或对象组合而成。]当我们定义一个class的时候,可以从某个现有的class继...
2020-02-27 11:14:16
270
转载 【Python进阶】3-5 定义类方法
文章目录1、python中定义类方法1、python中定义类方法和属性类似,方法也分实例方法和类方法。在class中定义的全部是实例方法,实例方法第一个参数 self 是实例本身。要在class中定义类方法,需要这么写:class Person(object): count = 0 @classmethod def how_many(cls): ...
2020-02-27 10:23:17
111
原创 【Python进阶】3-4 定义实例方法 / 方法也是属性
文章目录1、python中定义实例方法2、python中方法也是属性1、python中定义实例方法一个实例的私有属性就是以__开头的属性,无法被外部访问,那这些属性定义有什么用?虽然私有属性无法从外部访问,但是,从类的内部是可以访问的。除了可以定义实例的属性外,还可以定义实例的方法。实例的方法就是在类中定义的函数,它的第一个参数永远是 self,指向调用该方法的实例本身,其他参数和一个普通...
2020-02-25 16:42:34
146
原创 【Python进阶】3-3 创建类属性 / 类属性和实例属性名字冲突问题
文章目录1、创建类属性2、类属性和实例属性名字冲突问题1、创建类属性类是模板,而实例则是根据类创建的对象。绑定在一个实例上的属性不会影响其他实例,但是,类本身也是一个对象,如果在类上绑定一个属性,则所有实例都可以访问类的属性,并且,所有实例访问的类属性都是同一个!也就是说,实例属性每个实例各自拥有,互相独立,而类属性有且只有一份。定义类属性可以直接在 class 中定义:class Pe...
2020-02-25 16:30:50
379
原创 【Python进阶】3-2 访问限制
我们可以给一个实例绑定很多属性,如果有些属性不希望被外部访问到怎么办?Python对属性权限的控制是通过属性名来实现的,如果一个属性由双下划线开头(__),该属性就无法被外部访问。看例子:class Person(object): def __init__(self, name): self.name = name self._title = 'Mr...
2020-02-25 14:28:43
85
原创 【Python进阶】2-2 安装第三方模块
文章目录安装第三方模块Anaconda安装常用模块模块搜索路径安装第三方模块在Python中,安装第三方模块,是通过包管理工具pip完成的。如果你正在使用Mac或Linux,安装pip本身这个步骤就可以跳过了。如果你正在使用Windows,请参考安装Python一节的内容,确保安装时勾选了pip和Add python.exe to Path。在命令提示符窗口下尝试运行pip,如果Wind...
2020-02-25 13:56:04
181
原创 【Python进阶】2-1 使用模块 | 导入模块 / 动态导入模块 / 使用__future__ / 作用域说明
文章目录1、导入模块2、动态导入模块3、使用__future__4、作用域1、导入模块要使用一个模块,我们必须首先导入该模块。Python使用import语句导入一个模块。例如,导入系统自带的模块 math:import math你可以认为math就是一个指向已导入模块的变量,通过该变量,我们可以访问math模块中所定义的所有公开的函数、变量和类:>>> math.p...
2020-02-25 13:43:28
474
原创 【Python进阶】3-1 类和实例 | 定义类并创建实例 / 创建实例属性 / 初始化实例属性
文章目录1、定义类并创建实例2、创建实例属性3、初始化实例属性1、定义类并创建实例在Python中,类通过 class 关键字定义。以 Person 为例,定义一个Person类如下: class Person(object): pass按照 Python 的编程习惯,类名以大写字母开头,紧接着是(object),表示该类是从哪个类继承下来的。类的继承将在后面的章节讲解,现在我...
2020-02-25 10:51:16
917
原创 【Python进阶】1-5 偏函数
python中偏函数当一个函数有很多参数时,调用者就需要提供多个参数。如果减少参数个数,就可以简化调用者的负担。比如,int()函数可以把字符串转换为整数,当仅传入字符串时,int()函数默认按十进制转换:>>> int('12345')12345但int()函数还提供额外的base参数,默认值为10。如果传入base参数,就可以做 N 进制的转换:>>...
2020-02-25 09:58:01
159
原创 【python进阶】1-4 decorator装饰器 | 编写无参数decorator / 编写带参数decorator / 完善decorator
文章目录1、python中编写无参数decorator装饰器python内置的@语法就会使为了简化装饰器调用装饰器的作用:可以极大地简化代码,避免每个函数编写重复性代码打印日志:@log检测性能:@performance数据库事务:@transactionURL路由:@post(’/register’)1、python中编写无参数decoratorPython的 decorat...
2020-02-25 09:21:32
242
原创 【Python进阶】1-3 匿名函数
python中匿名函数高阶函数可以接收函数做参数,有些时候,我们不需要显式地定义函数,直接传入匿名函数更方便。在Python中,对匿名函数提供了有限支持。还是以map()函数为例,计算 f(x)=x2 时,除了定义一个f(x)的函数外,还可以直接传入匿名函数:>>> map(lambda x: x * x, [1, 2, 3, 4, 5, 6, 7, 8, 9])[1, ...
2020-02-10 19:51:28
115
原创 【Python进阶】1-2 返回函数 | 函数作为返回值 、闭包
文章目录1、函数作为返回值2、闭包1、函数作为返回值Python的函数不但可以返回int、str、list、dict等数据类型,还可以返回函数!例如,定义一个函数 f(),我们让它返回一个函数 g,可以这样写:def f(): print 'call f()...' # 定义函数g: def g(): print 'call g()...' ...
2020-02-09 16:05:15
232
原创 【Python进阶】1-1 高阶函数 | map() / reduce() / filter() / sorted()
文章目录1、高阶函数基本概念2、高阶函数之map()函数3、高阶函数之reduce()函数4、高阶函数之filter()函数5、高阶函数之sorted()函数——排序算法1、高阶函数基本概念变量可以指向函数函数名其实就是指向函数的变量高阶函数:能接收函数做参数的函数变量可以指向函数函数的参数可以接收变量一个函数可以接收另一个函数作为参数能接收函数作参数的函数就是高阶函数明确高...
2020-02-07 16:17:15
131
原创 【Python入门】8-3 列表生成式 | 生成列表、复杂表达式、条件过滤、多层表达式
文章目录1、生成列表2、复杂表达式3、条件过滤4、多层表达式1、生成列表要生成list [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],我们可以用range(1, 11):>>> range(1, 11)[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]但如果要生成[1x1, 2x2, 3x3, ..., 10x10]怎么做?方法一是循环:...
2020-01-20 15:54:16
445
原创 【Python入门】8-2 迭代 | 定义、索引迭代、迭代dict的value、迭代dict的key和value
1、什么是迭代在Python中,如果给定一个list或tuple,我们可以通过for循环来遍历这个list或tuple,这种遍历我们称为迭代(Iteration)。在Python中,迭代是通过 for … in 来完成的,而很多语言比如C或者Java,迭代list是通过下标完成的,比如Java代码:for (i=0; i<list.length; i++) { n = lis...
2020-01-20 14:30:35
213
原创 【Python入门】8-1 切片 | 对list进行切片、倒序切片、对字符串切片
文章目录1、对list进行切片2、倒序切片3、对字符串切片1、对list进行切片取一个list的部分元素是非常常见的操作。比如,一个list如下:>>> L = ['Adam', 'Lisa', 'Bart', 'Paul']取前3个元素,应该怎么做?笨办法:>>> [L[0], L[1], L[2]]['Adam', 'Lisa', 'Bart...
2020-01-19 11:36:52
523
原创 【Python入门】函数 | 函数的编写和调用、多值、递归函数、定义默认参数/可变参数
文章目录1、调用函数2、编写函数3、返回多值4、递归函数5、定义默认参数OK:Error:1、调用函数Python内置了很多有用的函数,我们可以直接调用。要调用一个函数,需要知道函数的名称和参数,比如求绝对值的函数 abs,它接收一个参数。可以直接从Python的官方网站查看文档:也可以在交互式命令行通过 help(abs) 查看abs函数的帮助信息。调用 abs 函数:>&g...
2020-01-16 23:01:16
329
原创 【Python入门】6-2 set | set的定义、访问set、set的特点、遍历set、更新set
文章目录1、set的定义2、访问set3、set的特点4、遍历set5、更新set1、set的定义dict的作用是建立一组 key 和一组 value 的映射关系,dict的key是不能重复的。有的时候,我们只想要 dict 的 key,不关心 key 对应的 value,目的就是保证这个集合的元素不会重复,这时,set就派上用场了。set 持有一系列元素,这一点和 list 很像,**但...
2020-01-13 18:21:06
572
原创 【Python入门】6-1 dict | 定义、访问dict、更新dict、遍历dict
文章目录1、什么是dict2、访问dict3、dict的特点4、更新dict5、遍历dict1、什么是dict我们已经知道,list 和 tuple 可以用来表示顺序集合,例如,班里同学的名字:[‘Adam’, ‘Lisa’, ‘Bart’]或者考试的成绩列表:[95, 85, 59]但是,要根据名字找到对应的成绩,用两个 list 表示就不方便。如果把名字和分数关联起来,组...
2020-01-10 17:08:43
292
原创 【Python入门】5-2 循环 | for循环、while循环、break退出循环、continue继续循环、多重循环
文章目录1、for循环2、while循环3、break退出循环4、continue继续循环5、多重循环1、for循环list或tuple可以表示一个有序集合。如果我们想依次访问一个list中的每一个元素呢?比如 list:L = ['Adam', 'Lisa', 'Bart']print L[0]print L[1]print L[2]如果list只包含几个元素,这样写还行,如果l...
2020-01-10 16:04:40
244
转载 【Python入门】5-1 条件判断 if、if-else、if-elif-else
if语句计算机之所以能做很多自动化的任务,因为它可以自己做条件判断。比如,输入用户年龄,根据年龄打印不同的内容,在Python程序中,可以用if语句实现:age = 20if age >= 18: print 'your age is', age print 'adult'print 'END'注意:Python代码的缩进规则。具有相同缩进的代码被视为代码块,上...
2020-01-08 15:53:05
265
转载 【Python入门】4-2 创建tuple、创建单元素tuple、可变的tuple
tuple是另一种有序的列表,中文翻译为“ 元组 ”。tuple 和 list 非常类似,但是,tuple一旦创建完毕,就不能修改了。同样是表示班里同学的名称,用tuple表示如下:>>> t = ('Adam', 'Lisa', 'Bart')创建tuple和创建list唯一不同之处是用( )替代了[ ]。现在,这个 t 就不能改变了,**tuple没有 append...
2020-01-07 15:41:28
417
转载 【Python入门】4-1 Python创建list、按索引访问list、倒序访问list、添加/删除/替换元素
Python内置的一种数据类型是列表:list。list是一种有序的集合,可以随时添加和删除其中的元素。比如,列出班里所有同学的名字,就可以用一个list表示: >>> ['Michael', 'Bob', 'Tracy'] ['Michael', 'Bob', 'Tracy']list是数学意义上的有序集合,也就是说,list中的元素是按照顺序排列的。构造list...
2020-01-07 14:18:58
1012
转载 【Python入门】3-9 Python中布尔类型
我们已经了解了Python支持布尔类型的数据,布尔类型只有True和False两种值,但是布尔类型有以下几种运算:1. 与运算:只有两个布尔值都为 True 时,计算结果才为 True。True and True # ==> TrueTrue and False # ==> FalseFalse and True # ==> False...
2020-01-07 14:03:11
175
转载 【Python入门】3-8 Python中整数和浮点数
Python支持对整数和浮点数直接进行四则混合运算,运算规则和数学上的四则运算规则完全一致。基本的运算:1 + 2 + 3 # ==> 64 * 5 - 6 # ==> 147.5 / 8 + 2.1 # ==> 3.0375使用括号可以提升优先级,这和数学运算完全一致,注意只能使用小括号,但是括号可以嵌套很多层:(1 + 2...
2020-01-07 13:40:30
225
转载 【Python入门】3-7 Python中Unicode字符串
字符串还有一个编码问题。因为计算机只能处理数字,如果要处理文本,就必须先把文本转换为数字才能处理。最早的计算机在设计时采用8个比特(bit)作为一个字节(byte),所以,一个字节能表示的最大的整数就是255(二进制11111111=十进制255),0 - 255被用来表示大小写英文字母、数字和一些符号,这个编码表被称为ASCII编码,比如大写字母 A 的编码是65,小写字母 z 的编码是122...
2020-01-07 11:53:09
254
转载 【Python入门】3-6 Python中raw字符串与多行字符串
如果一个字符串包含很多需要转义的字符,对每一个字符都进行转义会很麻烦。为了避免这种情况,我们可以在字符串前面加个前缀 r ,表示这是一个 raw 字符串,里面的字符就不需要转义了。例如:r'\(~_~)/ \(~_~)/'但是r’…'表示法不能表示多行字符串,也不能表示包含’和 "的字符串(为什么?)如果要表示多行字符串,可以用’’’…’’'表示:'''Line 1Line 2Li...
2020-01-07 11:37:03
127
转载 【Python入门】3-4 Python中什么是变量
在Python中,变量的概念基本上和初中代数的方程变量是一致的。例如,对于方程式y=x*x,x就是变量。当x=2时,计算结果是4,当x=5时,计算结果是25。只是在计算机程序中,变量不仅可以是数字,还可以是任意数据类型。在Python程序中,变量是用一个变量名表示,变量名必须是大小写英文、数字和下划线(_)的组合,且不能用数字开头,比如:a=1变量a是一个整数。...
2020-01-07 10:47:35
107
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人