- 博客(45)
- 资源 (8)
- 收藏
- 关注
原创 xorm和sqlmock结合的踩坑指南
首先明确一点:xorm中查询多条数据可以使用Find方法,Find方法的第一个参数为slice的指针或Map指针举个例子:// 错误示例var person []Persondb.where("age = ?", 18).Find(person) // 错误,得传person的地址,尽管person是指针类型// 正确示例var person []Persondb.where("age = ?", 18).Find(&person)如果以上这点没注意到,那么应结合Find函数
2022-01-26 21:54:13
1920
原创 GoLand或其它JetBrains产品中Git的提速方法
今天在GoLand中提交项目代码的时候,发现Git的速度很慢,热心的同事看到后交给了我一个方法:找到IDE的安装目录,打开bin文件夹,将该文件夹下的runnerw.exe 和runnerw64.exe的后缀改一下,随便怎么该都行,只要不是.exe 结尾,我的改成runnerw.exe.bak。然后就会发现,git的速度会快很多。...
2021-09-24 11:22:40
496
原创 一篇文章搞定Gin框架
文章目录1. HTTP请求和参数解析1.1 Engine的创建1.2 Handle处理HTTP请求1.3 分类处理请求1.4 重定向2. 请求参数绑定与多数据格式处理2.1 参数绑定2.2 多数据格式返回补充:关于HTML模板3. 路由组4. 中间件4.1 中间件的基本使用4.2 中间件和控制器共享数据5. 文件上传6. Cookie和Session6.1 设置Cookie6.2 获取Cookie6.3 Session前言安装:go get -u github.com/gin-gonic/gin导入
2021-09-23 20:21:24
840
原创 自制Web框架:Gee框架
1.1 HTTP基础在Go语言中实现一个HTTP服务器非常简单。第一步需要实现一个处理器,所谓处理器就是实现了ServeHTTP方法的接口:type hello struct {}func (h *hello) ServeHTTP(w http.ResponseWriter, r *http.Request) { fmt.Fprintf(w, "hello, world!")}第二步是设定服务端口并将路由与处理器绑定:helloFunc = new(hello)// 设定端口s
2021-08-02 11:32:08
563
原创 用Python写一个简单的计算器
import wxclass MyFrame(wx.Frame): def __init__(self): wx.Frame.__init__(self, parent=None, id=-1, title="计算器", size=(384, 378)) panel = wx.Panel(self) self.text_res = wx.TextCtrl(panel, -1, size=(310, 35), pos=(37,33), style=wx.TE_READONLY|wx.TE_
2021-06-04 19:06:35
332
原创 爬虫:关于网页编码
导语:当我们用爬虫成功获取网页源码后,可能打印出来却是乱码的,因为使用requests 模块时,程序会根据HTTP头自动判断网页编码,但这样做就显得不太准确,所以还需要我们手动修改。手动修改网页编码显得繁琐且笨拙,我们引入一个新的模块cchardet来帮助我们完成这一系列的工作。安装pip install cchardet因为是用C语言编写的缘故,cchardet 比chardet 更高效使用该模块里面只有一个方法,那就是detect ,下面给出官方的使用案例:测试
2021-01-31 14:22:45
557
原创 单线程、多线程、单线程+协程下载图片速度的比较
导语:学习爬虫的过程中为了提高爬取的速度之前一直使用多线程,近日研究了一下协程,协程也被认为是轻量级的线程,使用协程在I/O密集型运算中能够更好的缩短运行时间,因为协程是真正的实现了异步操作,并且对比多线程而言,协程没有数量限制,而且协程本质上是单线程处理多任务时进行了超级大循环(即遇到阻塞就切换下一个任务,遍历所有任务后再回到第一个任务),所以协程相对于多线程来说,没有生成以及销毁线程的开销。下面,以爬取校花网的图片为例,我们测试一下协程和多线程的速度。1. 先爬取20页图片(320张)的地址校
2021-01-29 20:39:19
644
原创 C++常用容器
文章目录一. 链表1.1 单向链表1.1.1 传统链表1.1.2 企业链表1.2 list容器二、栈三、map容器四、vector容器五、string容器一. 链表1.1 单向链表1.1.1 传统链表模型:#include<iostream>using namespace std; //链表节点struct LinkNode{ int data; //指向任何类型数据 LinkNode* next;};//链表结构体struct LinkList{
2020-12-05 15:27:47
485
原创 K次取反后最大化的数组和
K次取反后最大化的数组和题目描述 :给定一个整数数组 A,我们只能用以下方法修改该数组:我们选择某个索引 i 并将 A[i] 替换为 -A[i],然后总共重复这个过程 K 次。(我们可以多次选择同一个索引 i。)以这种方式修改数组后,返回数组可能的最大和。示例 :思路 :大家仔细观察示例的输入后可以发现,我们需要从最小的数开始反转。如果数组里有负数,首先需要先将负数进行反转,每次反转最小的负数。如果数组里都是正数,这是需要分三种情况:如果K 为偶数,每次反转数组里最小的数,最后得到的
2020-12-03 16:03:52
383
原创 三角形的最大周长
题目描述 :题解 :给出两种解题思路,一种是回溯法,一种是贪心。回溯法简单地说就是遍历所有可能的组合情况,可以用一个向量vector<int> shu 来存储三边的长度,使用标记符b 来判断是否集齐三边。b 初始值为0,shu 里每添加一个元素b 的值就加1,当b 的值为3时,集齐了三边,然后判断任意两边长度是否大于第三边,如果符合三角形的定义,就计算周长并赋值给res (这里res 只记录最大的周长值)。遍历完所有情况后res 里的值就是最大周长值。缺点:时间复杂度太大//回
2020-11-29 15:19:22
517
原创 算法每日刷
每日算法DAY One: 数组交集问题DAY Two: 最长公共前缀DAY Three:无重复字符的最长子串DAY One: 数组交集问题题目描述:给定两个数组,编写一个函数来计算它们的交集。示例://示例1输入: 1 2 2 1 2 2输出: 2 2//示例2输入: 4 9 5 9 4 9 8 4输出: 4 9说明:可以不考虑输出结果的顺序重复的元素按重复的次数输出思路:如果使用双重for循环的话需要先将数组去重,使用map容器将元素值与元素个数存储起
2020-08-23 23:06:23
201
原创 php基础学习大全
文章目录第一章:PHP语言基础1.1 PHP的标记风格1.3 PHP的数据类型1.3.1 标量数据类型1.3.2 复合数据类型1.3.3 数据类型转换1.3.4 检测数据类型1.4 PHP常量1.4.1 声明和使用常量1.4.2 预定义常量1.5 PHP变量1.5.1 变量声明及使用1.5.2 变量作用域1.5.3 可变变量1.5.4 预定义...
2020-04-27 11:02:20
1176
原创 攻防世界密码学部分:'WWW'型栅栏密码
'WWW’型栅栏密码题目:普通栅栏密码:假如有一个字符串:123456789取字符串长度的因数进行分组,假如key=31 2 3 \\分组情况,每三个数字一组,分为三组4 5 67 8 9然后每一组依次取一个数字组成一个新字符串:147258369 \\加密完成的字符串www型(如本题):可以写程序也可以在网上找破解工具求解,我自己写的程序:'''WWW型栅栏密...
2019-11-13 15:35:37
2399
1
原创 图的m着色问题
【题目描述】给定无向连通图 G 和 M 种不同的颜色,用这些颜色为图 G 的各顶点着色,每个顶点着一种颜色。如果有一种着色法使 G 中每条边的 2 个顶点着不同的颜色,则称这个图是 M 可着色的。图的 M 着色问题是对于给定图 G 和 M 种颜色,找出所有不同的着色法。对于给定的无向连通图 G 和 M 种不同的颜色,编程计算图的所有不同的着色法。【输入】第一行有 3 个正整数 ...
2019-11-03 21:09:39
412
原创 计算字符个数
题目内容:接受一个由字母和数字组成的字符串,和一个字符,然后输出输入的字符串中含有该字符的个数。不区分大小写。输入格式:输入一个由字母和数字组成的字符串,和一个字符,以空格隔开。输出格式:输出输入的字符串中含有该字符的个数。输入样例:a1234bcdef a输出样例:1代码如下:s = str(input())b = s[len(s) - 1]su...
2019-11-03 12:00:52
644
原创 Python:字符串循环左移
题目内容:给定一个字符串S,要求把S的前k个字符移动到S的尾部,如把字符串“abcdef”前面的2个字符‘a’、‘b’移动到字符串的尾部,得到新字符串“cdefab”,称作字符串循环左移k位。输入一个字符串和一个非负整数N,要求将字符串循环左移N次。输入格式:输入在第1行中给出一个不超过100个字符长度的、以回车结束的非空字符串;第2行给出非负整数N。输出格式:在一行中输出...
2019-11-03 11:54:19
1387
原创 汉诺塔问题
问题描述有a, b, c三座塔,在a塔上有n个圆盘,这些圆盘自上而下,从小到大的叠放在一起,现在要把圆盘从a移到b上,每次只能移动一个圆盘,并且任何时刻都不能将大的圆盘压在小的圆盘上。解题思路首先设法将a上的前n-1个圆盘借助c移动到b上; 将a上的最后一个圆盘移动到b上; 借助c移动的过程中,将c上的n-1个圆盘借助b移动到a上,然后重复步骤一。解题代码#include...
2019-11-03 11:45:59
235
原创 递归的概念:函数递归过程
定义直接或间接地调用自身的算法称为递归算法。用函数自身给出定义的函数称为递归函数。使用递归技术往往会使代码更简洁,使算法的描述更清晰且容易理解。举例例 1:阶乘函数阶乘函数递归的定义为:当n=0时,n!=1,这是这个函数的初始条件,是非递归定义的,是此递归函数的退出条件。这个递归函数在执行时,会不断的调用自身,寻找自身的值减一后的阶乘值,直到自身值减一为0时,此时函数递归到了最后一...
2019-11-02 17:00:45
1179
原创 快速排序
思想:找出一个中间值,使数组的左边都小于此数,右边都大于此数,然后对左右两边分别进行递归,直到只有一个元素为止。分析一下Partition函数:以数组 a = {3 2 5 1 4 6 9}为例,首先以3为基准,令x=a[0](一般写为x=a[left], left为数组左边的最小下标值),i= 0,j=6+1(最大下标值加一),接着进循环。i自增1,判断a[i]是...
2019-09-04 16:39:06
126
原创 进制转换
题目描述输入一个十进制正整数,然后输出它所对应的八进制数。输入输入一个十进制正整数n(1≤n≤106)。输出输出n对应的八进制数,输出在一行。样例输入10样例输出12#include<iostream>using namespace std;int chen(int a){ int k = 1; for (int i = 1...
2019-09-04 15:57:24
181
原创 小雏鸟的成人式 3(黑心店主)
题目描述陶行知先生说:“因为道德是做人的根本。根本一坏,纵然使你有一些学问和本领,也无甚用处。”小雏鸟们需要时刻铭记在心,不管你长成什么样的的攻城狮,都必须三观正确。涛涛轰这一天带着爱美酱来到了一个风景如画的地方游玩。艳阳高照,他俩玩的很尽兴,但是现在他们口渴了。涛涛轰:“我要买饮料!”店主:“我们这里有三种饮料,矿泉水1.5元一瓶,可乐2元一瓶,橙汁3.5元一瓶。”涛涛轰...
2019-09-04 15:54:16
994
原创 小雏鸟的成人式 2
题目描述陶行知先生说:“我们要活的书,不要死的书”。小雏鸟们从书上都是对的到现在能去伪存真的去使用书籍,证明你们长大了。总之就是要有自己的主见,自己的思考。大白希望大家都能拿到一百分,所以对100这个数以及他的倍数很喜欢。大白发现,从1开始,一定能找出一个序列从小到大排列,使得每一项都是恰好能且仅能被100整除D次。请你编写程序,找到这个数列里第N个数。输入多行。...
2019-09-04 15:47:49
1142
5
原创 线性时间选择(C++):求第k小的数
方法一: 思想:首先对整个数组进行划分,利用Partition函数,以数组中某个数为基准(这里以首项为标准)将数组划分为两部分——左边部分的所有数都小于基准,右边部分都大于基准,并返回基准数的下标值。 然后,如果要找到第k小个数,就将k的大小与数组左半边元素的个数(若为j,包括基准)进行比较,如果k小于j,则对左边部分进行递归,找第k小个数;若k大于j,...
2019-09-04 15:43:24
6255
3
原创 C++算法:合并(归并)排序——递归与非递归
一、带递归的合并排序#include<iostream>using namespace std;void copy(int a[], int b[], int left,int right){ for (int i = left; i<= right; i++) a[i] = b[i];}void meg(int a[], int b[], int l, i...
2019-09-02 16:14:50
2970
原创 C++:字母按字典序的全排列
要点:相比于普通的递归全排列,按字典排序的全排列需要用到排序函数(下面代码中的Sort函数),要为字符先排好序(按ASCLL值),再进行递归排列。普通的递归全排列(可与本文的代码比较来看):https://blog.csdn.net/qq_40760732/article/details/100098306注意:Perm(char list[],int p,int q)做的是数组list[...
2019-08-29 21:07:02
4756
原创 递归与分治之全排列
参考教学视频:https://www.bilibili.com/video/av9830088?from=search&seid=107948597631354052代码段包含两个函数: 一:Swap函数:用于数值交换; 小提示:在头文件algorithm中已经封装好了swap函数,增加头"#include<algorithm>"可直接调用s...
2019-08-27 14:24:00
556
原创 Python装饰器模拟登录系统
#装饰器:import timeimport randomislogin = Falsedict1 = {'08172357':'123456','0':'0'}def random_number(n): list1 = ['0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f','g','h','i','j'...
2019-07-18 18:49:22
634
原创 Python字典
一.特点:1.符号:{}2.关键字:dict3.保存的元素:key:value(键值对)二.定义:dict1 = {}; dict1 = dict()三.转换:dict1 = dict(((‘name’,‘Lucy’),(‘age’, 18))) # name : Lucy ; age : 18元组里面套元组,元组里面套列表;列表里面套元组,列表里面套列表——都行;列表或元组中的...
2019-07-15 19:01:01
95
原创 用Python解决最大公约数问题
使用辗转相除法:a = eval(input('请输入一个数字:'))b = eval(input('请输入另一个数字:'))if a > b : max, min = a, b c = a % belse : max, min = b, a c = b % aif c == 0 : print('{}和{}的最大公约数为{}'.format(a,b,min))else...
2019-07-15 18:53:09
865
原创 用python实现冒泡排序与选择排序
#Python冒泡排序(以升序为例):s = [0.1,3,9,5,2,6]for i in range(0,len(s)-1): for j in range(i+1,len(s)): if s[i]>s[j] : t = s[i] s[i] = s[j] s[j] = tprint(s...
2019-07-14 12:56:46
175
原创 Python列表与元组的一些性质与函数
Python列表:1.创建:list1 = list(),list1 = [ ] list1 = list(tuple) 将元组转换为列表2.更新: list1[下标] = 新值 list.append(obj):在列表末尾添加新的对象 list.insert(索引,obj):将对象插入指定索引位置,原位置上的值后...
2019-07-14 12:48:52
315
原创 Python中关于字符串处理的内置函数
1.大小写相关:(以字符串 s = 'we are Family'为例) capitalize():字符串的第一个字符转成大写 执行 s = s.capitalize() 的结果为:s = 'We are Family' title():每个单词的首字母转成大写 执行 s = s.title() 的结果为:s = 'We Are Family'...
2019-07-13 19:15:32
637
原创 Python的输出格式
一.基本的输出方式1.用加号连接字符串a = 'This is a'b = 'python program'print(a + b )输出:This is apython program用加号连接时,两个字符串之间无缝衔接。注意:‘+’只能用于连接字符串和字符串,不能用于连接字符串和数字。a = 'This is a'b = 78print(a + b )...
2019-07-12 22:18:53
662
原创 Python的PV操作实现:生产者与消费者问题
描述:生产者:四个消费者:六个缓冲区:五个某一时刻只能有一个线程或进程访问缓冲区,缓冲区没满时生产者可以往里面放东西,缓冲区没空时消费者可以从里面取东西。信号量:设置三个信号量,一个信号量判断缓冲区是否被占用,一个信号量判断缓冲区是否有空,最后一个信号量判断缓冲区里是否有东西。实现:import queue,random,threadingfr...
2019-04-28 17:42:17
2847
1
原创 Python:装饰器
装饰器的提出:给定一个函数,要求输出10个‘+’:def yuu(): for i in range(10): print('+')若要求yuu函数不变,先打印10个‘x’再打印10个'+':def outer(func): def ack(): for i in range(10): print('x') ...
2019-04-27 20:56:38
136
原创 Python的P、V操作:司机开车问题(线程的信号量实现)
题目: 对于司机:有开车,驾驶,停车几个操作 对于售票员:有打开车门,关上车门几个操作 要求:售票员关上车门后司机才能开车,司机停车后售票员才能打开车门。import threading,timelock_1 = threading.Semaphore(1) #检查售票员是否关门lock_2 = threading.Semaphore(0) ...
2019-04-25 12:48:27
998
原创 Python的进程与线程——DAY Two
一:多进程的创建与应用#多进程创建及运行from multiprocessing import Pool #进程池from time import sleepimport os,randomdef run (name) : print('子进程%d启动,进程号为%s'%(name,os.getpid())) time.sleep(random.choice(...
2019-04-19 22:16:08
237
Github加速工具,超好用
2023-06-15
burpsuite_community_windows-x64_v2_1_04.exe
2019-12-16
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人