自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(105)
  • 收藏
  • 关注

转载 Golang RPC初体验

本篇转自:https://zhuanlan.zhihu.com/p/183231254 请大家尊重原创RPC概念:     在分布式计算,远程过程调用(英语:Remote Procedure Call,缩写为 RPC)是一个计算机通信协议。该协议允许运行于一台计算机的程序调用另一个地址空间(通常为一个开放网络的一台计算机)的子程序,而程序员就像调用本地程序一样,无需额外地为这个交互作用编程(无需关注细节)。RPC 是一种服务器-客户端( Client/.

2020-11-25 15:22:17 4

原创 Centos 7+Docker+Nginx+KeepAlived实现高可用

Docker安装全过程:docker的安装教程网上到处都是,随便贴个地址:https://www.cnblogs.com/huangjinyong/p/11834835.html拉取centos7镜像:docker pull centos:7创建容器:docker run -it -d --name centos1 -d centos:7进入容器:docker exec -it centos1 bash安装一些常用工具:yum updateyum install -y vim w.

2020-11-25 12:50:57 9

原创 小米4C Android5.1线刷

官方工具:线刷通用教程:传送门下载通用线刷工具:http://bigota.d.miui.com/tools/MiFlash2018-5-28-0.zip (连接来自于上面的传送门)解锁BL:官方解锁连接:http://www.miui.com/unlock/index.html解压解锁工具:需要登录小米账号,跟着指示走,关机后 音量下+电源键 进入fastboot去解锁下载对应的刷机包:![在这里插入图片描述](https://img-blog.csdnimg.cn/202.

2020-11-24 23:44:03 11

原创 Python Redis环境搭建

Centos 7 安装redis步骤:yum install redisyum install epel-release启动redis:systemctl start redis查看redis状态:systemctl status redissystemctl stop redis 停止服务systemctl restart redis 重启服务设置开机自启动:systemctl enable redis开发端口(没有启动firewalld的话启动一下):system

2020-11-24 21:54:21 10

原创 分析过程

衔接上文:https://blog.csdn.net/ALakers/article/details/109892574分析过程:浏览器中打开链接,如下图所示:发现短链经过了跳转查看最终的结果,发现video标签里面存在url的链接:不过打开你会发现,这是个有水###印的视频,但是链接中有个video_id,video_id对于一个视频来讲,如果你是开发人员,你会让它重复吗?我们接着往下看:发现了一个以json作为返回结果的请求,参数还相当简单:不过这个item_id是什么呢?

2020-11-21 15:37:08 15 1

原创 某#音#获取#无#水#印#视#频(无法保存的视频也可以下载)

操作步骤:找到需要下载的视频,点击分享链接将里面的链接地址提取出来,复制到下方python脚本中第12行的链接,链接应该是长这样:https://v.douyin.com/dGefxad/(这个url是随手写的)分析过程请接着后面看Python脚本(未处理任何异常情况,本篇主要注重过程分析,有问题的小伙伴可自行分析解决)import jsonimport requestsfrom urllib.parse import urlparseurl = 'xxxxxxxxxx.

2020-11-21 14:44:09 5

原创 Golang 原生Sql

记录基本的CRUD:package mainimport ( "database/sql" "fmt" _ "github.com/mattn/go-sqlite3")func main() { fmt.Println("打开数据") db, err := sql.Open("sqlite3", "F:\\test\\raw_sql.db") checkErr(err) fmt.Println("生成数据表") sql_table := `CREATE TABLE IF.

2020-11-20 18:39:33 4

原创 Golang Xorm初体验

具体使用请参考文档:https://gobook.io/read/gitea.com/xorm/manual-zh-CN/package mainimport ( "fmt" "github.com/go-xorm/xorm" _ "github.com/mattn/go-sqlite3" "math/rand" "strconv" "time")type User struct { Id int64 Name string Age int Password.

2020-11-20 18:35:31 7

原创 Python Sqlalchemy 初试用

Python代码:from sqlalchemy import and_,or_from sqlalchemy.ext.declarative import declarative_basefrom sqlalchemy.orm import sessionmaker,relationship,backreffrom sqlalchemy import create_engine,Column, Integer, String,ForeignKeyBase = declarative_ba.

2020-11-20 16:29:10 5

原创 解析URL(Golang+Python)

URL格式:在互联网中,任何一个可访问的文件或文档都具有一个唯一的地址,这种地址称为统一资源定位符(Uniform Resource Locator,简称URL),其格式如下: scheme://host[:port][path][:parameters][?query]#fragmentscheme(协议):包括http、https、ftp 以及 file。hostname(主机名):可以是主机名、域名、服务器IP。例如百度的域名:www.baidu.comport(端口号):省.

2020-11-19 10:53:21 11

原创 python 二分插入排序

直接插入排序请看:https://blog.csdn.net/ALakers/article/details/108738339二分插入排序:# 二分插入排序def insertion_sort_binarysearch(data_list): for index in range(1,len(data_list)): current_value = data_list[index] position = index left = .

2020-11-11 15:09:23 13

原创 Python -二叉树 创建与遍历算法

本篇绝大部分参考自:https://blog.csdn.net/weixin_44951273/article/details/108716212树是由n(n>=1)个有限结点组成一个具有层次关系的集合,把它叫做树是因为它看起来像一颗倒挂的树,也就是说它是根朝上,而叶朝下的。二叉树特点:每个结点有0个或多个子结点没有父结点的结点成为根结点每一个非根结点只有一个父结点每个结点及其后代结点整体上可以看做一棵树,称为当前结点的父结点的一个字树树的相关术语:结点的度:一个结点含有的子树的

2020-11-09 13:24:00 29

原创 最少的硬币 Python

题目:1元,3元,5元的硬币若干枚,如何用最少的硬币凑够11元?代码:def min_num(money): num = 0 for i in [5, 3, 1]: num += int(money/i) money = money%i return numprint(min_num(24))

2020-11-06 16:06:57 13

原创 M根绳子最长长度问题

题目:有N根绳子,第i根绳子的长度为Li,现在需要M根等长的绳子,可以对N根绳子进行任意裁剪但不能拼接,那么这M根绳子的最长长度是多少。代码:def max_length(m,n,length_data): max_length = float(max(length_data)) min_length = 0.0 while(abs(max_length - min_length) >= 1e-3): mid = min_length +

2020-11-06 15:43:05 17

原创 LeetCode:67 Python 二进制求和

def add_binary(a: str, b: str) -> str: result_str = '' if len(a)>len(b): a,b = b,a l = len(a) s = len(b) - l b_left = b[:s] b = b[s:] index = l-1 temp = 0 while index >=0: res = int(a[index])

2020-11-06 01:12:45 32

原创 LeetCode Python 不同路径(动态规划)

本篇题目图片文字来源于:https://blog.csdn.net/qq_43328040/article/details/109459709题目描述一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。问总共有多少条不同的路径?例如,上图是一个7 x 3 的网格。有多少可能的路径?示例 1: 输入: m = 3, n = 2 输出: 3 解释: 从左上角

2020-11-03 14:26:06 42 1

原创 Python LeetCode求子集

def subsets(nums): item = [] result = [] result.append(item) def generate(i, nums): if i >= len(nums): return item.append(nums[i]) result.append(list(item)) generate(i + 1, nums) item.

2020-11-02 13:58:02 25

原创 Python LeetCode 数组中的最长山脉

1、题目描述我们把数组 A 中符合下列属性的任意连续子数组 B 称为 “山脉”:B.length >= 3存在 0 < i < B.length - 1 使得 B[0] < B[1] < ... B[i-1] < B[i] > B[i+1] > ... > B[B.length - 1](注意:B 可以是 A 的任意子数组,包括整个数组 A。)输入:[2,1,4,7,3,2,5]输出:5解释:最长的 “山脉” 是 [1,4,7,3,

2020-11-02 11:58:04 213

原创 Leetcode 独一无二的出现次数

一、题目要求: 给你一个整数数组 arr,请你帮忙统计数组中每个数的出现次数。 如果每个数的出现次数都是独一无二的,就返回 true;否则返回 false。 示例 1: 输入:arr = [1,2,2,1,1,3] 输出:true 解释:在该数组中,1 出现了 3 次,2 出现了 2 次,3 只出现了 1 次。没有两个数的出现次数相同。 示例 2: 输入:arr = [1,2] 输出:false 示例 3: 输入:arr = [-.

2020-10-29 19:00:33 24

原创 Python 利用Zip函数获取公共前缀

zip 语法:zip([iterable, ...])参数说明:iterable – 一个或多个迭代器,利用 * 号操作符,可以将元组解压为列表返回值返回一个对象zip 例子:a = ["flower", "flowa", "flqwe"]b = ["flower", "flowa", "flqwe"]print(list(zip(a,b)))print(list(zip(*zip(a,b))))print(list(zip(['xxxxxx'],['yyyyyy']))

2020-10-26 13:13:02 42

转载 URL编码表

本篇转自:https://blog.csdn.net/superit401/article/details/78052965 URL编码表 backspace 8% A 41% a 61% § %A7 Õ %D5   tab 9% B 42% b 62% « %AB Ö %D6   linefeed %0A C 43% c 63% ¬ %AC Ø %D8   creturn %0D D 44% d 64% ¯ %AD Ù %D9

2020-10-22 23:11:25 17

原创 gin+vue实现m3u8视频播放

本篇简介:     本篇采用Golang的gin框架作为后台,简单设置静态路径和跨域,提供服务,前端采用vue,用vue-video-player进行播放,.m3u8以及.ts采用ffmpeg进行生成。一、ffmpeg生成.m3u8以及.ts:ffmpeg.exe -re -i F:\test\mda-jdru2en34rfx8we1.mp4 -c copy -f hls -hls_list_size 0 -bsf:v h264_mp4toannexb F:\t

2020-10-16 01:01:36 83

转载 Python yield理解

本篇转自:https://blog.csdn.net/mieleizhi0522/article/details/82142856    首先我要吐槽一下,看程序的过程中遇见了yield这个关键字,然后百度的时候,发现没有一个能简单的让我懂的,讲起来真TM的都是头头是道,什么参数,什么传递的,还口口声声说自己的教程是最简单的,最浅显易懂的,本篇博客看完之后我真的基本理解了yield的用法了。接下来是正题:首先,如果你还没有对yield有个初步分认识,那么你先把y

2020-10-13 16:15:55 10

原创 Python3 nonlocal

加nonlocal:count = 10def non_local_test(): count = 100 def inner(): nonlocal count count = 1000 print('inner count is {}'.format(count)) inner() print('outside count is {}'.format(count))non_local_test()print(

2020-10-13 11:28:04 12

原创 FFMPEG基本操作

一、FFMPEG基本操作ts转mp4ffmpeg -i videoinput.ts out.mp4未完待续…

2020-10-09 11:16:05 184

转载 索引原理

本篇转自:https://www.cnblogs.com/aspwebchh/p/6652855.html       使用索引很简单,只要能写创建表的语句,就肯定能写创建索引的语句,要知道这个世界上是不存在不会创建表的服务器端程序员的。然而, 会使用索引是一回事, 而深入理解索引原理又能恰到好处使用索引又是另一回事,这完全是两个天差地别的境界(我自己也还没有达到这层境界)。很大一部份程序员对索引的了解仅限于到“加索引能使查询变快”这个概念为止。 为什么要给表加

2020-10-09 11:01:47 18

转载 Python 产生随机验证码

import randomfrom PIL import Image, ImageDraw, ImageFont width, height, font_size, font_num = 300, 100, 48, 4bg_color = (random.randint(0, 255), random.randint(0, 255), random.randint(0, 255))image = Image.new(mode='RGB', size=(width, height), color

2020-10-04 23:14:55 15

原创 Python 滑块验证

一、安装python opencv模块pip install opencv-python二、准备好图片准备好带缺口的图片和缺口图片template.png:target.png:三、代码:def caculate_distance(): otemp = 'F:\\test\\template.png' oblk = 'F:\\test\\target.png' target = cv2.imread(otemp, 0) template = cv2.imr

2020-09-29 18:43:01 65

转载 Youtube-dl 参数详解

本篇转自:https://www.cnblogs.com/yaoz/p/6870187.htmlUsage: youtube-dl [OPTIONS] URL [URL...]Options: 通用选项: -h, --help 打印帮助文档 --version 打印版本信息 -U, --update 更新到最新版(需要权限) -i, --

2020-09-26 15:12:21 295

原创 Python 读写excel表格

本篇参考了两篇博客并做了一点整理,厚着脸皮标了个原创https://blog.csdn.net/asialee_bird/article/details/105497121https://www.cnblogs.com/ilovepython/p/11068841.html本实例从一份excel文件中读取并写入另一个文件中,话不多说,直接上代码:import xlrdimport xlwtimport datetimefrom xlrd import xldate_as_tuple

2020-09-26 15:05:17 56

原创 Python复杂对象排序

简单记录: data = [ {'age': 25,'name':'name1'}, {'age': 21,'name':'name2'}, {'age': 32,'name':'name3'}, {'age': 19,'name':'name4'} ] res = sorted(data,key=lambda item: item.get('age')) print('res is {}'.for

2020-09-26 11:00:20 19

原创 Python 快速排序

def quick_sort(data_list): if len(data_list) >= 2: length = int(len(data_list)/2) middle_element = data_list[length] left,right = [], [] data_list.remove(middle_element) for num in data_list: if n

2020-09-23 00:20:20 12

原创 Python 插入排序

def insert_sort(data_list): length = len(data_list) for i in range(1,length): # 选择当前值 判断前面是否有比当前值大的元素 存在则往后移位 temp = data_list[i] j = i - 1 while j>=0 and data_list[j] > temp: data_list[j+1]

2020-09-22 18:56:55 10

原创 Python 冒泡排序以及选择排序

def select_sort(array): length = len(array) for i in range(0,length): index = i # 记住下标方便后面进行交换 for j in range(i+1,length): if array[index]>array[j]: index = j if .

2020-09-22 17:07:23 8

原创 Python 归并排序

体现了分治思想def merge_sort(arr): if len(arr)<=1: return arr middle = int(len(arr)/2) left = arr[:middle] right = arr[middle:] left_data = merge_sort(left) right_data = merge_sort(right) return merge(left_data,ri

2020-09-22 16:14:03 6

转载 int3 Windows系统调试原理

本文转自:https://www.cnblogs.com/xuanyuan/p/3998408.html 探索调试器下断点的原理  在Windows上做开发的程序猿们都知道,x86架构处理器有一条特殊的指令——int 3,也就是机器码0xCC,用于调试所用,当程序执行到int 3的时候会中断到调试器,如果程序不处于调试状态则会弹出一个错误信息,之后程序就结束。使用VC开发程序时,在Debug版本的程序中,编译器会向函数栈帧中填充大量的0xCC,用于调试使用。因此,经常我们的程序发生缓冲区溢出时,

2020-09-19 22:23:37 56

原创 Python 二分查找

递归方式:array = [3,5,8,12,15,17,40,54,65,80]def binary_search_v1(start,end,array,target): if start > end: return middle = int((start+end)/2) middle_element = array[middle] if target == middle_element: print('got it {},

2020-09-19 11:35:03 15

原创 Python 全排列

给定一个列表,列出所有排列import copyarray = [3,2,5]new_array = []def get_results(arr): l = len(arr) if l == 0: print('new array is {}'.format(new_array)) for i in range(0,l): # 复制一份 cpy = copy.copy(arr) # 取出元素

2020-09-19 01:00:26 37

原创 记录一次Python os.path.join路径拼接错误

ss = 'E:\\Cloud\\20200813105812L\\res\\1\\425'a = '\\8_live_1962854245_export_files\\media'c = os.path.join(ss,a)print(c)得到的是如下结果:os.path.join()函数:连接两个或更多的路径名组件:参数可能存在多个从右边开始数,遇到第一个以”/”开头的参数,开始拼接,这个参数左边的全部丢弃print("0:",os.path.join('\\aaaa'.

2020-09-18 10:58:11 52

转载 引用模块时import后面加上{}和不加{}的区别

1、不使用花括号假如一个B.js,想通过import语法引用模块A.js,那么可以这么写import A from './A'而上面的代码生效的前提是,只有在如下A.js 中有默认导出的 export default 语法时才会生效。也就是说:// A.jsexport default 42在这种不使用{}来引用模块的情况下,import 模块时的命名是随意的,即如下三种引用命名都是正确的:// B.jsimport A from './A'import MyA from './A'

2020-09-13 21:56:23 131

空空如也

空空如也

空空如也

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

TA关注的人 TA的粉丝

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