自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 并发编程

12.并发编程12.1 并发与并行Erlang 之父 Joe Armstrong曾经以下图解释并发与并行。并发在图中的解释是两队人排队接咖啡,两队切换。并行是两个咖啡机,两队人同时接咖啡。“Concurrency is about dealing with lots of things at once. Parallelism is about doing lots of things at once.” — Rob Pike并发使并行变得容易,并发提供了一种构造解决方案的方法,并行一般伴随这多

2020-12-26 22:51:59 154 1

原创 单元测试

11.单元测试在日常开发中,我们通常需要针对现有的功能进行单元测试,以验证开发的正确性。 在go标准库中有一个叫做testing的测试框架,可以进行单元测试,命令是go test xxx。测试文件通常是以xx_test.go命名,放在同一包下面。11.1 初探Go单元测试现在假设现在需求是:完成两个复数相加,我们只需要一个函数便可以完成该任务。在开发中,我们需要对该函数进行功能测试,如何快速进行单元测试呢?鼠标放在函数上右键,选择GO:Generate Unit Tests For Functi

2020-12-25 23:40:10 166

原创 反射机制

反射机制10.1 反射是什么反射的概念是由Smith在1982年首次提出的,主要是指程序可以访问、检测和修改它本身状态或行为的一种能力。Go 语言提供了一种机制在运行时更新变量和检查它们的值、调用它们的方法,但是在编译时并不知道这些变量的具体类型,这称为反射机制。10.2 反射的作用1.在编写不定传参类型函数的时候,或传入类型过多时典型应用是对象关系映射type User struct {gorm.ModelName stringAge sql.Null

2020-12-25 09:59:26 120

原创 异常处理

9.异常处理9.1 errorGo语言内置了一个简单的错误接口作为一种错误处理机制,接口定义如下:type error interface {Error() string}它包含一个 Error() 方法,返回值为stringGo的error构造有两种方式,分别是第一种:errors.New()err := errors.New(“This is an error”)if err != nil {fmt.Print(err)}第二种:fmt.Errorf()err := fmt.

2020-12-23 23:11:35 619

原创 包管理

8.包管理8.1 Go Modules是什么?Go语言通过包管理来封装模块和复用代码,这里我们只介绍Go Modules管理方法Go Modules于Go语言1.11版本时引入,在1.12版本正式支持,是由Go语言官方提供的包管理解决方案Modules是相关Go包的集合,是源代码交换和版本控制的单元。go命令直接支持使用Modules,包括记录和解析对其他模块的依赖性8.2 Go Modules的使用方法8.2.1 环境变量首先需要设置环境变量,可以使用go env命令查看当前配置。$ go

2020-12-22 23:12:10 59

原创 结构体

package mainimport ( "fmt")//定义结构体type person struct { name, city string age int8}//结构函数func newPerson(name, city string, age int8) *person { return &person{ name: name, city: city, age: age, }}func main() { var p pers

2020-12-21 23:20:36 72

原创 Go函数

package mainimport "fmt"//函数 变量作用域//定义全局变量var num int = 10//定义函数func testGlobal() { fmt.Println("Global:", num)}func testGlobal1() { num := 100 //1先在自己函数体中查找 //2函数体中找不到就找外层的全局变量 fmt.Println("Global:", num)}//函数作为参数func add(x, y int)

2020-12-20 20:56:51 68

原创 Map

package mainimport ("fmt" "math/rand" )//map(映射)func main() { //声明map类型 不初始化 a就是初始值nil var a map[string]int fmt.Println(a == nil) //map初始化 a = make(map[string]int,8) fmt.Println(a==nil) //添加键值对 a["harold"] = 100 a["vv"] = 100 fmt.Println(

2020-12-19 23:22:50 208 1

原创 字典、字符串

4.字典、字符串4.1 字典map是一种较为特殊的数据结构,在任何一种编程语言中都可以看见他的身影,它是一种键值对结构,通过给定的key可以快速获得对应的value。4.1.1 如何定义字典var m1 map[string]intm2 := make(map[int]interface{}, 100)m3 := map[string]string{“name”: “james”,“age”: “35”,}在定义字典时不需要为其指定容量,因为map是可以动态增长的,但是在可以预知map

2020-12-18 22:41:18 259 1

原创 运算符、控制语句

3.运算符、控制语句3.1 运算符假定 A 值为 10,B 值为 20。3.1.1 算数运算符运算符 描述 实例相加 A + B 输出结果 30相减 A - B 输出结果 -10相乘 A * B 输出结果 200/ 相除 B / A 输出结果 2% 求余 B % A 输出结果 0++ 自增 A++ 输出结果 11– 自减 A-- 输出结果 93.1.2 关系运算符运算符 描述== 检查两个值是否相等,如果相等返回 True 否则返回 False。!= 检查两个值是否不

2020-12-18 09:31:22 93

原创 变量 、常量、枚举

2.变量 、常量、枚举2.1 变量变量,计算机语言能存储计算结果或表示值的抽象概念。可以通过变量名访问,变量名由字母、数字、下划线组成,其中首个字符不能为数字。声明变量的一般形式是使用 var 关键字:var identifier typevar identifier1, identifier2 type变量声明方式:指定变量类型,若没有初始化,数值类型(包括complex64/128)默认零值,bool默认false,字符串默认“”,“var a *int、var a []int、var a

2020-12-16 22:39:54 156

原创 Datawhale-数据类型、关键字、标识符

Go 语言的空格 Go 语言中变量的声明必须使用空格隔开,如:var age int; 语句中适当使用空格能让程序更易阅读。 无空格:fruit=apples+oranges; 在变量与运算符间加入空格,程序看起来更加美观,如:fruit = apples + oranges;Go 语言按类别有以下几种数据类型:序号 类型和描述1 布尔型布尔型的值只可以是常量 true 或者 false。一个简单的例子:var b bool = true。2 数字类型整型 int 和浮点型 f..

2020-12-15 23:06:25 581 1

原创 Datawhale-GO初探

新的改变学习 Go 语言时,要做的第一件事,都是根据自己电脑的计算架构(比如,是 32 位的计算机还是 64 位的计算机)以及操作系统(比如,是 Windows 还是 Linux),从Go 语言官网下载对应的二进制包,也就是可以拿来即用的安装包。随后,我们会解压缩安装包、放置到某个目录、配置环境变量,并通过在命令行中输入go version来验证是否安装成功。在这个过程中,我们还需要配置 3 个环境变量,也就是 GOROOT、GOPATH 和 GOBIN。这里我可以简单介绍一下。GOROOT:Go 语

2020-12-14 20:21:28 101

原创 python 一

2020-09-07 23:03:12 58

原创 深夜加油站遇到苏格拉底

人如果得不到想要的东西,就会受苦;得到不想要的东西,也会受苦;就连得到你正好想要的东西,仍然会受苦,因为你无法永远拥有它。你的心智就是你的困境。它想免于改变,免于痛苦,免于生与死的必然性。然而,改变是一项法则,再怎么假装,都不能改变这个事实。先明白自己的思绪和心智来自何方,是怎么开始的。例如:你感冒了,生理症状告诉你,你的身体需要恢复平衡。当心智抗拒现实时,紧张压力就产生了。置身于水中的鱼儿可以观察到波纹,如果想要看到波纹产生的来源,就必须大幅飞跃对应的觉察力。一旦你清楚来源,就会看出心智的波纹和个人无

2020-07-26 11:37:57 249

原创 算法序列--树

树结构是一种非线性存储结构,存储的是具有“一对多”关系的数据元素的集合。树的结点结点:使用树结构存储的每一个数据元素都被称为“结点”。例如图中,数据元素 A 就是一个结点;父结点(双亲结点)、子结点和兄弟结点:对于图中的结点 A、B、C、D 来说,A 是 B、C、D 结点的父结点(也称为“双亲结点”),而 B、C、D 都是 A 结点的子结点(也称“孩子结点”)。对于 B、C、D 来说,它们都有相同的父结点,所以它们互为兄弟结点。树根结点(简称“根结点”):每一个非空树都有且只有一个被称为根的结点。

2020-07-17 21:47:46 207

原创 递归及分治思想

递归1、定义一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。递归的能力在于用有限的语句来定义对象的无限集合。一般来说,递归需要有边界条件、递归前进段和递归返回段。当边界条件不满足时,递归前进;当边界条件满足时,递归返回。构成递归需具备的条件:子问题须与原始问题为同样的事,且更为简单;不能无限制地调用本身,须有个出口,化

2020-07-15 22:27:36 773

原创 网络 -- n/24 计算IP范围

1.IP地址,共分为四类:A、B、C、D类。2.子网掩码。子网掩码的作用是用来表示IP地址中的多少位用来表示主机号,“其中值为1的比特留给网络号和子网号,为0的比特留给主机号”(TCP/IPV1),在B类网址中一边用来表示主机,因为在B类网址中用来表示主机号共有16bit,而实际中一般都不会安排如此多主机。3.具体的表示含义:172.16.82.0/25172.16.82.0: 表示了一个子网号,其中172.16表示B类网段号, 82.0表示了为172.16网络号中的第个0101-0010 0个子

2020-07-14 23:11:17 626

原创 Linux 僵尸进程

一、什么是僵尸进程  僵尸进程是指它的父进程已经退出(父进程没有等待(调用wait/waitpid)它),而该进程dead之后没有进程接受,就成为僵尸进程,也就是(zombie)进程。  二、僵尸进程是怎么样产生一个进程在调用exit命令结束自己的生命的时候,其实它并没有真正的被销毁,而是留下一个称为僵尸进程(Zombie)的数据结构(系统调用exit,它的作用是使进程退出,但也仅仅限于将一个正常的进程变成一个僵尸进程,并不能将其完全销毁)。在Linux进程的状态中,僵尸进程是非常特殊的一种,它已

2020-07-14 22:19:14 199

原创 Linux--硬链接和软链接

文件都有文件名与数据,这在 Linux 上被分成两个部分:用户数据 (user data) 与元数据 (metadata)。用户数据,即文件数据块 (data block),数据块是记录文件真实内容的地方;而元数据则是文件的附加属性,如文件大小、创建时间、所有者等信息。在 Linux 中,元数据中的 inode 号(inode 是文件元数据的一部分但其并不包含文件名,inode 号即索引节点号)才是文件的唯一标识而非文件名。文件名仅是为了方便人们的记忆和使用,系统或程序通过 inode 号寻找正确的文件

2020-07-14 21:36:35 109

原创 算法序列--栈和队列

栈(Stack)是一个后进先出(last in first 偶通,LIFO)的线性表,要求只在表尾进行删除和插入操作。栈的元素必须后进先出操作只能在栈的表尾进行表尾为栈的栈顶(top),相应的表头为栈底(bottom)栈的插入操作(Push):进栈,压栈。类似子弹放入弹夹的动作。栈的删除操作(Pop): 出栈,弹栈。如同弹夹的子弹弹出。栈本质是一个线性表,有两种存储形式,顺序存储结构和链式存储结构。队列(queue)只允许在一端进行插入操作,而在另一端进行删除操作的线性表。与栈相反,队

2020-07-09 21:09:53 256

原创 Linux find

Linux中find常见用法示例find path -option [ -print ] [ -exec -ok command ] {} ;find命令的参数;pathname: find命令所查找的目录路径。例如用.来表示当前目录,用/来表示系统根目录。-print: find命令将匹配的文件输出到标准输出。-exec: find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为’command’ { } ;,注意{ }和\;之间的空格。-ok

2020-07-07 22:59:05 132

原创 GO--Hello workd

Go是一门编译型语言,Go语言的工具链将源代码及其依赖转换成计算机的机器指令(译注:静态编译)。Go语言提供的工具都通过一个单独的命令go调用,go命令有一系列子命令。最简单的一个子命令就是run。这个命令编译一个或多个以.go结尾的源文件,链接库文件,并运行最终生成的可执行文件helloworld.gopackage mainimport "fmt"func main() { fmt.Println("Hello, 世界")}执行 go run helloworld.go 会有如下

2020-07-07 21:50:44 100

原创 算法序列----线性表

线性表:由零个或多个数据元素组成的有限序列。1、属于一个序列;2、第一个元素没有前驱,最后一个没有后继;3、有限的。两种物理存储结构:1、顺序存储;2、链式存储。顺序存储:1、存储位置就是顺序的位置;2、数组的最大长度;3、当前长度 length链式存储:1、使用任意存储单元存储数据元素;2、除了存储数据元素之外,还要存储它的后继元素的存储地址(指针);头指针:链表指向第一个节点的指针,如链表有头节点则指向头结点的指针;无论链表是否为空,头指针不为空;头指针是链表的必须元素。

2020-07-02 22:28:57 136

原创 Linux curl wget

curl 和 wget如果你想快速下载并且没有担心参数标识的需求,那你应该使用轻便有效的 wget。如果你想做一些更复杂的使用,直觉告诉你,你应该选择 curl。1、下载文件curl -O http:man.linuxde.net/text.iso #O下载内容wget http://www.linuxde.net/text.iso #直接下载内容2、下载文件并且重命名curl -o rename.iso http://man.linuxde.net/text.isowget -O

2020-07-01 22:13:25 141

原创 算法序列--算法特性

算法有五个基本特性:输入、输出、有穷性、确定性和可行性。输入–0个或者多个输入输出–至少有一个或多个输出;有穷性–在执行特定有限步骤之后,自动结束而不会无限循环;确定性–每个步骤都是被精确定义的可行性–每一步骤都是可以执行有限次数完成算法设计的要求:正确性:1、没有语法错误2、对于合法输入能够产生满足要求的输出3、对于非法输入能够产生满足规格的说明4、对于故意刁难的测试输入有满足要求的输出可读性:便于阅读,了解和学习健壮性:对于不合法数据输入,可做出相关处理。..

2020-06-29 22:58:56 113

原创 Linux crontab

crontab 是用来让使用者在固定时间或固定间隔执行程序之用,换句话说,也就是类似使用者的时程表。crontab 时间表示 项目 含义 范围第一个"" 一小时当中的第几分钟(minute) 0~59第二个"" 一天当中的第几小时(hour) 0~23第三个"" 一个月当中的第几天(day) 1~31第四个"" 一年当中的第几个月(month) 1~12第五个"*" 一周当中的星期几(week) 0~7(0和7都代表星期日)时间特殊符号 特殊符号 含义(星号)

2020-06-29 21:19:38 127

原创 Pandas 分类数据

category的创建及其性质分类变量的创建(a)用Series创建pd.Series([“a”, “b”, “c”, “a”], dtype=“category”)得出0 a1 b2 c3 adtype: categoryCategories (3, object): [a, b, c](b)对DataFrame指定类型创建temp_df = pd.DataFrame({‘A’:pd.Series([“a”, “b”, “c”, “a”], dtype=“c

2020-06-27 22:08:00 157

原创 云环境部署django+uwsgi 生产环境

准备条件:1.确保有一个能够用runserver正常启动的django项目2.项目已上传到linux 3.linux上已部署好python环境,且已安装好项目所需的模块安装uwsgipip3 install uwsgi基于uwsgi+django实现1、在django项目同级目录创建script目录,用于存放配置脚本等等[root@hecs-x-large-2-linux project]# pwd/root/project[root@hecs-x-large-2-linux proje

2020-06-27 21:36:15 85

原创 Linux 安装python3 和 pip3

安装python3.71、安装依赖环境yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel2、下载python3(可下载自己需要的python版本)wget https://www.python.org/ftp/python/3.7.0/Python-3.7.0.

2020-06-27 19:53:31 170

原创 Pandas文本数据

一、String 类型的性质1、string与object的区别string类型和object不同之处有三:① 字符存取方法(string accessor methods,如str.count)会返回相应数据的Nullable类型,而object会随缺失值的存在而改变返回类型② 某些Series方法不能在string上使用,例如: Series.str.decode(),因为存储的是字符串而不是字节③ string类型在缺失值存储或运算时,类型会广播为pd.NA,而不是浮点型np.nan,其余全

2020-06-26 22:18:03 136

原创 Pandas 缺失号

三种缺失符号及其对比【pandas 1.0之前】三种记号(pandas 1.0) np.nan None np.NaT【时间序列用】类型 float64 Nonetypepandas._libs.tslibs.nattype.NaTTypeequal的时候是否会包括在内 不包括 包括 不包括某列出现该值的类型 1.数值型,布尔型统一转换为float642.字符型统一转换为O(object类型) 1.None传入数值型自动变换为np.nanNone传入时间型变量自动变换为.

2020-06-24 00:47:59 1592 1

原创 Pandas 练习

首先导入库及数据import pandas as pdimport numpy as npdf = pd.read_csv('data/2002年-2018年上海机动车拍照拍卖.csv')df.info()<class 'pandas.core.frame.DataFrame'>RangeIndex: 203 entries, 0 to 202Data colum...

2020-05-01 22:07:53 308

原创 Pandas 合并

Panads合并import numpy as npimport pandas as pddf = pd.read_csv('data/table.csv')df.head() School Class ID Gender Address Height Weight ...

2020-04-30 23:39:04 318

原创 Pandas 变形

Pandas 变形import numpy as npimport pandas as pddf = pd.read_csv('data/table.csv')df.head() School Class ID Gender Address Height Weight...

2020-04-28 23:17:53 160

原创 Python爬虫编程实践--re bs及xpath

Beautiful Soup库入门Beautiful Soup 是一个HTML/XML 的解析器,主要用于解析和提取 HTML/XML 数据。它基于HTML DOM 的,会载入整个文档,解析整个DOM树,因此时间和内存开销都会大很多,所以性能要低于lxml。BeautifulSoup 用来解析 HTML 比较简单,API非常人性化,支持CSS选择器、Python标准库中的HTML解析器,也支...

2020-04-23 23:31:29 589

原创 Python爬虫基础介绍

互联网、HTTP互联网 互联网也叫因特网(Internet),是指网络与网络所串联成的庞大网络,这些网络以一组标准的网络协议族相连,连接全世界几十亿个设备,形成逻辑上的单一巨大国际网络。它由从地方到全球范围内几百万个私人的、学术界的、企业的和政府的网络所构成。通过电子、无线和光纤等一系列广泛的技术来实现。这种将计算机网络互相连接在一起的方法可称作“网络互联”,在此基础上发展出来的覆盖全世...

2020-04-21 20:30:33 229

原创 Pandas基础

本文记录pandas相关学习记录Pandas导入#导入pandas import pandas as pd#导入numpyimport numpy as np#查看pandas 版本 pd.__version__ps:本次pandas训练使用1.0.3版本,如低版本可通过 pip install --upgrade pandas==1.0.3 指定版本升级文件读取及写入读...

2020-04-20 22:17:11 146

空空如也

空空如也

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

TA关注的人

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