自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(102)
  • 资源 (1)
  • 收藏
  • 关注

原创

同一段代码,在短时间内的两次运行结果不一样,哎!你知道吧,IO混乱是件很可怕的事情,话说thinkpad E430c 是哪一年的,我感觉我是不是需要换电脑了。明白一件事情,原生库永远是最牛逼的,可能不是最方便的但一定是最实用的,所以我觉得还是要从原生库开始学起。...

2019-04-30 07:54:42 263

原创 《用实例学习SQL》相关表

Student表:Course表:Sc表:该系列文章借鉴了数据库系统概论,王珊和数据库系统概念,均可在两本书中找到相关概念,如果想系统学习数据库基本知识建议使用这两本书。...

2019-02-17 11:05:58 286

原创 《用实例学习SQL》第七篇:视图的建立和使用

(一)、视图的定义:视图是从一个或者几个基本表中导出来的一个虚表,和基本表不同在于,视图定义的表并不实际存在。CREATE VIEW view_name [(field1, field2,...)]AS <子查询>[WITH CHECK OPTION]以上是定义视图的语句,其中子查询可以是任意的子查询用于在基本表中提取数据组成视图表。从定义我们可以看出,视图表并不存在。在...

2019-02-17 10:43:51 459

原创 《用实例学习SQL》第六篇:空值的讨论

(一)我们首先讲一下空值的定义:在数据库中,null代表空值,其是指“不知道”,“不存在”,**“不确定”**的值,其中请重点注意这个空值是一个“不确定”的值。我们知道要判断表中一个数据是不是空值用“is null”和“is not null”而不能用“=”,那这个是为什么?很简单,上面说过,null是一个不确定的值,也就是说它可能是任意一个值也可能什么值都不是,这是一个不确定的,随时可以改...

2019-02-17 10:00:22 395

原创 《用实例学习SQL》第五篇:数据更新

在SQL中数据查询才是大头,当然,对于insert,delete,update这些更新操作也是要熟悉的。SQL字符串常量(英文字符)用单引号括起来(1)、插入操作(insert)用于向表中添加记录,有两种方式:①后面接values关键字,直接添加输入数值INSERT INTO table_name[(field1, field2,...)] VALUES (value1, value...

2019-02-17 09:46:42 173

原创 《用实例学SQL》第五篇:集合查询和基于派生表的查询

一、集合查询我们知道,对于集合的操作有三个:并,交,差在SQL中,在表之间进行集合操作,要求进行操作的表有相同的列的数目和对应列的类型相同(1)、并操作(union)union会自动取出重复元组,而union all不会select * from Studentwhere Sdept = 'CS'union (all)select *from Studentwhere Sag...

2019-02-16 23:47:07 1475

原创 《用实例学习SQL》专题篇:带有(not)exists 谓词的子查询(2)

这次我们要通过存在量词来表述SQL中没有的全称量词。上篇中我们讲到的题目是:选修了所有课程的学生姓名当然我们可以通过嵌套查询写出来,如下:select Snamefrom Student join (select Sno from Sc group by Sno having count(*) = ...

2019-02-16 11:32:02 335

原创 《用实例学习SQL》专题篇:带有(not)exists 谓词的子查询(1)

作为一个存在谓词,exists在条件筛选结果中返回的结果只有True和False。exists的用法select * from table1where exists (select * from table2);#当子查询的结果不是空时,exists返回True,否则返回Falsenot exists的用法select *from table1where exists...

2019-02-16 10:31:44 448 1

原创 《用实例学习SQL》第四篇:嵌套查询

在SQL语言中,一个select-from-where语句称为一个查询块,将一个查询块嵌套在另外一个查询块的where或having的条件中的查询称为嵌套查询, 外层的查询称为父查询,内层的查询称为子查询;在sql语句中的嵌套查询的深度是没有限制的,也就是说,可以在子查询中再任意设置子查询。select Snamefrom Studentwhere Sno in (select Sno fr...

2019-02-15 23:42:11 1804

原创 《用实例学习SQL》第三篇:表的连接查询

在一个查询中同时涉及两个及两个以上的表(当然,自身连接查询也算)称之为表的连接查询分为:等值连接查询,非等值连接查询,自然连接查询,自身连接查询和符合条件的连接查询在where子句中用来连接两个表的条件称之为连接条件或连接谓词(1)、等值连接查询和非等值连接查询当连接运算符为‘=’时,称为等值连接,使用其它的运算符称为非等值连接。(连接运算符见上篇)select Student.*, S...

2019-02-15 11:06:52 206

原创 《用实例学习SQL》第二篇:单表查询(3)

介绍order by、group by 和聚集函数(count,avg,sum, max,min)(1)、order by子句:排序子句,对整个表或者group by分的组进行排序。不能再嵌套查询中使用order byselect *from Scwhere Sno = 3order by Grade desc, Sno asc;# 将结果表按grade 的降序排序,如果有grade...

2019-02-14 19:54:04 203

原创 《用实例学习SQL》第二篇: 单表查询(2)

常见的查询谓词比较:=,>, <, >=, <=, !=(<>)确定范围:(not) between A and B – 其中包含A,B。确定集合:(not) in字符匹配:(not) like空值:is (not) null连接谓词: and, or, not(1)、比较谓词简单,除了‘=’外,其他的都只能使用在数值之间(2)、确定范围:

2019-02-14 19:35:27 217 1

原创 《用实例学习SQL》第二篇:单表查询(1)

一、选择表中的若干列alterselect Sno, Snamefrom Student;#1.选择两列alterselect Sno, Sname, Sdeptfrom Student;#2. 选择三列alterselect *from Student;#3. 选择所有列进行输出,这个通常查看一个table中所有数据时使用。alter二、选择表中若干列并查询计算的值sele...

2019-02-14 17:15:07 167

原创 《用实例学习SQL》第一篇:建表

第一步:create database StudentDB;创建数据库, 每个表达的结束都是用分号第二步:use StudentDB;使用数据库第三步: 使用数据库并插入数据create table Student(Sno varchar(10) primary key,Sname varchar(10),Ssex varchar(10),Sage int,Sdept va...

2019-02-14 16:47:09 170

原创 求助帖--拉钩登录中的challenge参数

这是一个求助帖,今天在练习爬虫时模拟登录拉勾网。有一个challenge参数,虽然用chrome断点判断出了它的值,也知道在哪个请求里可以得到哪个值,但是生成challenge参数的请求我怎么也构造不出来,因为他是一个post请求,它的请求体是一个request payload,但是不是字典形式的,而且每次都不一样。以下是我的分析过程。首先,我们找到登陆的data可以看到有一个password...

2019-01-12 11:59:17 1291 7

转载 经验贴:pycharm专业版的安装与激活

我安装专业版的主要目的是可以快速的创建框架项目,如flask和django,至于更多的区别,有很多博客文章,我也不知道。就很容易的打包创建一个flask文件夹首先你要下载pycharm专业版。然后,看这个连接:https://mp.weixin.qq.com/s?__biz=MzI0OTc0MzAwNA==&mid=100000527&idx=1&sn=2a6f3f35...

2019-01-10 12:18:05 664

原创 对github的爬取,涉及请求的分析,登录爬取,request中session对象的使用

其实github的爬取相对来说是比较简单的,可以不用框架直接使用requests和BF就可以完成一个纵向的爬取。代理工具:fiddler首先说一下这次爬取的数据,是github上递归的爬取使用者主页的信息,包括博主和此博主主页上最受欢迎的六个项目(Popular Repositories)项目的名称,简介,星数和转载数。这是爬取的信息。接下来我们来分析github的爬取,从登陆到递归爬取的...

2019-01-08 19:35:31 1220

原创 经验贴---fiddler安装和https请求的捕捉

安装是傻瓜式的安装。捕捉https请求参考资料:https://www.cnblogs.com/joshua317/p/8670923.htmlhttps://blog.csdn.net/lzp2011150309/article/details/52325796第一步:这里将证书导出到桌面,接下来就是将其在浏览器中设置为信任证书机构**在浏览器的设置里面找“证书管理”**进行以上的设...

2019-01-01 22:43:06 380 1

原创 经验贴—MongoDB的安装和以及可视化工具robo 3T

MongoDB下载地址:http://www.mongodb.org/downloads可视化工具下载地址:https://robomongo.org/1、首先,MongoDB下载好以后傻瓜式安装,一直“next”就好了。2、然后,是配置本地的服务,其实它是自动给你配置好了的,不过也不一定。3、输入网址:localhost:27017,如果出现的是“It looks like you ar...

2018-12-31 22:23:33 876 1

原创 队列的实现

对于python来说,要实现一个队列的类根据已经有的方法,是很简单的。既然队列要求一端插入,一端删除。明显,python就有这两个工具,对于队列的尾部删除用pop(0)就可以做到,头部插入,用append就可以做到。从这方面来说确实很简单,但总是要找到最优解不是吗?所以我们不用pop方法,因为对于python内部实现而言,这个方法的复杂度是O(n),为什么呢?我们删除列表的首位列表的全部元素都会往...

2018-10-25 12:22:07 175

原创 背包问题的实现代码

# _*_ coding: utf-8 _*_def Sum(arg): x= 0 for i in arg: x = x + i return xdef pack(weight=0, x=0, i=0, arg = 0): # if Sum(arg) < weight: # raise ValueError...

2018-10-23 11:42:00 826

原创 关于中缀转后缀的详细说明

我们还是不要考虑符号的问题,遇到数字直接往列表里加就好了。我们通过比较两个符号优先级来确定该符号应不应该从栈中弹出,换句话说就是我们考虑的就是以怎么样的方式从栈中弹出符号。这样的话,我们首先栈里要有元素对吧,然后我们通过比较优先级它与接下来符号的优先级来确定要不要从栈中弹出这个符号。我们首先确定一下优先级:priority = {"+": 3, "-": 3, "*": 5, "/": 5...

2018-10-21 21:17:45 1701

原创 中缀向后缀表达式的转换

前面也说过,对于计算机来说(不仅仅是计算机)中缀表达式都是复杂的,它要考虑到优先级的问题,很伤脑筋,至于中缀向后缀的转换也是一个很伤脑筋的事情,在转换的过程中要考虑到很多优先级的情况。好了,既然跟优先级有关,那么我们就应该为各个运算符号设置一个优先级,我们很明显对于加减乘除的优先级已经很明显能知道怎么设定,关键是扩号这个拥有最高优先级的符号该怎么设置优先级。在考虑这个问题之前我们首先考虑一下没有...

2018-10-21 15:37:05 192

原创 三种数学表达式以及后缀表达式的计算

对于我们日常数学应用中最常用的中缀表达式,它其实是最复杂的一种计算方式,它增加了各种优先级运算符等,使表达式不简单;其实还有其他两种数学表达式,前缀表达式和后缀表达式。它们的实例以及计算方式如下:实例相关的中缀表达式:(3 - 5)* (6 + 17 * 4) / 3前缀表达式:实例:/ * - 3 5 + 6 * 17 4 3计算方式:前缀表达式由右往左就算,每次遇到运算符就取离该运...

2018-10-20 12:45:07 2595

原创 迭代器相关的运算重载符

__iter__和__next__是在类中自动实现迭代协议的运算重载符。例如:class square: def __init__(self, start, stop): self.value = start -1 self.stop = stop def __iter__(self): return self def __next__(self): if self.v...

2018-10-18 11:50:59 696

原创 生成器(自身就是一个迭代器)

对于python中两种延迟生成值的结构:生成器函数生成器表达式我相信生成器函数各位都是不陌生的,就是在函数返回值前用yield,但是注意一点,这里我并没有说用yield代替return,两个意义其实是不同的,所以不存在代替的问题,两者可以共存。例如:def instance(): for i in range(1, 6): yield i if i == 4: ret...

2018-10-18 11:25:24 261

原创 迭代器和可迭代对象

基于python3迭代器 = 可迭代的对象可迭代的对象 != 迭代器讲在前面:返回迭代器的对象,有:open(), map(), zip()和filte()函数,这几个函数直接返回迭代器也就是可以直接在结果中调用next如:f = open('xxx.txt')while true: print(next(f))# 结果是逐个返回文件对象中的各个行返回的可迭代对象有:rang...

2018-10-17 11:18:23 488

原创 MySQL的嵌套查询

定义我就不说了,子查询就是内部的查询,包含子查询就是外部查询!也就是说嵌套查询一个是内部查询一个是外部查询,而且查询是由内向外的。提示一下:在group by和order by中的子查询是没有意义的!子查询的分类:标量子查询—返回单个值的查询列子查询—返回单属性一列的行子查询—返回多属性一行的表子查询—多行多列标量子查询可以使用比较运算符(其他的查询不可单独使用比较运算符):“...

2018-10-16 11:07:08 2040

原创 栈的应用之判断文本括号是否正确

栈的一个经典应用就是判断一个文本中的括号,包括小括号,中括号,大括号是不是有缺失,顺序不正确等情况。栈的类的实现在前面文章中已经实现,我们这里直接应用(用的是顺序表实现的栈)两种解法:第二种解法有细节第一种解答法如下:# _*_ coding:utf-8 _*_"""用于检查文本中的括号是不是使用正确,对于文本中括号的缺少等问题都能够检测"""from 栈的顺序表实现 im...

2018-10-12 19:11:18 306

原创 两个数组的中位数以及一个字符串中最长的不重复的子串

题目:两个数组的中位数指先找到两个有序数组的中位数,然后求两个中位数的平均值代码如下:# _*_ coding: utf-8 _*_# 题目:求两个排序数组的中位数的平均数class Solution: def __init__(self, nums1, nums2): self.nums1 = nums1 self.nums2 = nums2...

2018-10-12 19:03:26 189

原创 两数相加

题目描述:给定两个非空链表来表示两个非负整数。位数按照逆序方式存储,它们的每个节点只存储单个数字。将两数相加返回一个新的链表。你可以假设除了数字 0 之外,这两个数字都不会以零开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 -> 8原因:342 + 465 = 807实现代码:# -*- codin...

2018-10-11 19:04:05 136

原创 栈的实现

栈是一个LIFO数据结构,也就是后进去的元素先出来,栈中的元素没有任何的相互关联,栈可以实现的操作也很简单,除了建立空栈,判断空栈外,只有对栈顶压入元素,弹出元素,查看栈顶元素。我们通过顺序表和链接表依次来实现一个栈的类:通过顺序表实现:class StackOverFlow(ValueError): passclass Stack: maxElem = 9 ...

2018-10-11 12:06:46 134

原创 python列表的实现

从数据结构的角度来看,python列表是通过线性表来实现的,进一步来讲,是动态的顺序表来实现list的。那我们就应该首先讲一下什么是动态的顺序表?顺序表分为两类-----一体式顺序表和动态的顺序表, 动态的顺序表指的是表对象和表元素的主体不在一个存储快中,表对象通过连接的方式与存储元素的块相连。图示如下:你要是问我图片哪里来的,《数据结构与算法 python实现》。怎么个动态法呢?...

2018-10-11 12:02:11 526

原创 综述 ------ 线性表,字符串,栈和队列

忍不住想给前几个数据结构进行一下总结。对于线性表我们分为顺序表和链接表,分类的依据是节点的物理存储关系。顺序表中每个节点其物理存储关系就表现了它的节点的逻辑关系,即每个节点的存储空间都是紧挨着,也就是说一个顺序表的物理存储空间就是一大块物理存储空间。 而链接表通过节点间的链接关系将表中的节点联系起来,也就是说其节点间的逻辑关系是由链接实现的,存储上,各个节点并不是紧挨着。其中顺序表又根...

2018-10-11 11:36:08 302

原创 求两数之和

题目:任意给出一个数字和数组,要求在数组中找出相加等于这个数字的两个元素,要求不能重复利用一个数组元素python解答:def consequence(TarVa, Values): ValidValues = [] i = 0 # 用于存放数组中有效元素的元祖 while i == 0: x = Values[0] y = Ta...

2018-10-10 19:45:31 1147

原创 python数据结构之KMP算法的实现

我相信网上已经有很多关于KMP算法的讲解,大致都是关于部分匹配表的实现思路和作用,还有就是目标串的下标不变,仅改变模式串的下标来进行匹配,确实用KMP算法,当目标串很大模式串很小时,其效率很高的,但都是相对而言。至于对于部分匹配表的作用以及实现思路,建议看一下这篇文章写的是比较易懂的,英文看不懂?那你就看别的国人写的吧,其实大概都差不多,我这里主要是用python语言实现一个部分匹配表以及实现KM...

2018-10-09 11:00:21 433

原创 python字符串以及他的匹配算法

对于python字符串的实现来说,它本身是一个线性表,根据前面我们讲过的关于线性表的主体,我们可以实现一个字符串对象,在这里我们需要说明的是,python字符串是一个不可变的对象,而且它的实现是一个一体式的顺序表的实现(概念见前面文章)所以,对于一个字符串的对象,它除了有字符存储空间外还有字符串长度和一些配置信息的空间。(注意一点:python没有字符对象,单个字符也认为是一个字符串对象)所以...

2018-10-07 12:02:12 691

原创 josephus环的实现(顺序表和链接表)

josephus环问题是数据结构中一个常见的实例:假设有n个人做成一圈,现在要求从第k个人开始报数,报道m的人退出。然后从下一个人继续从头报数,并按相同的规则退出, 直到所有的退出。还有就是要按退出的顺序打印出出列人的编号。其实看到这个“一圈”,我第一瞬间就想到了用循环链表,也确实可以。这里我分别中顺序表和循环链表进行了实现。一、顺序表:对于顺序表对josephus问题的实现由两种思路:第...

2018-10-04 13:05:19 684

原创 链表的总结

一个链表实质上是链表对象和链表实体 的组合,如图:图中的first,就是一个链表对象,它代表这个链表,它本身也是一个结构,当它只用来指代第一个节点本身的时候,它可以是一个值为第一个节点引用的变量,当然我们可以为它定义一个结构,使其存储链表的长度等信息,如class listObj: def __init__(self): self.node_num = 0 self.head = ...

2018-09-27 12:03:09 274

原创 双向循环链表的实现

其实双向循环链表与单链表的区别在于每个节点的结构发生了改变,具体的说是,每个节点多了一个指针域,用于指向上一个节点。其他的如链表对象就不需要进行改变了。新的节点类:class LNode: def __init__(self, elem=0, prev=None, next_=None): self.prev = prev self.elem = ele...

2018-09-27 11:04:51 498

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除