自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(35)
  • 问答 (1)
  • 收藏
  • 关注

原创 C++函数参数中引用和指针区别

C++中有三种传递参数的方式值传递将变量名作为实参和形参,这是传递的就是参数的值,而且属于单向传递。实参和形参在不同的地址空间中。即我在函数外部调用函数的时候,把变量传递进去之后,无论函数内部对我的变量做了怎样的修改,改变的只是函数内部形参的值,函数外部的实参保持不变#include <iostream>#include <stdio.h>#include <string>using namespace std;void funcr(string

2021-02-28 17:18:00 732

原创 [LeetCode链表] 141.环形链表 (easy)

哈希表最容易想到的方法是遍历所有节点,每次遍历到一个节点时,判断该节点此前是否被访问过。具体地,我们可以使用哈希表来存储所有已经访问过的节点。每次我们到达一个节点,如果该节点已经存在于哈希表中,则说明该链表是环形链表,否则就将该节点加入哈希表中。重复这一过程,直到我们遍历完整个链表即可。class Solution {public: bool hasCycle(ListNode *head) { unordered_set<ListNode*> seen;..

2021-02-28 15:52:44 91

原创 线性回归

线性回归简述什么是线性回归?就是用函数来解决具体的实际应用。把一系列特征值作为自变量,目标值作为因变量训练得到一条拟合度良好的函数曲线。单变量线性关系多变量线性关系非线性关系线性回归API假设我们有一组数据:x = [[80, 86], [82, 80], [85, 78], [90, 90], [86, 82], [82, 90], [78, 80], [92, 94]]y = [84.2, 80.6, 80.1, 90, 83.2, 87.6, 79.4, 93.4]

2021-02-28 14:42:00 125

原创 [LeetCode链表] 83.删除排序链表中的重复元素 (easy)

递归法链表具有天然的递归性,凡是链表的问题我们都可以考虑一下递归,可以把一个链表看成头节点后挂接一个更短的链表,这个更短的链表看成其的头节点后面挂接一个更更短的链表,依次类推。所以可以先处理头节点后面挂接的更短的链表,处理完之后,判断头节点的值是否等于其挂接的更短的链表的头节点的值,如果相等则直接返回更短的链表的头节点,否则返回原链表的头节点。class Solution: def deleteDuplicates(self, head: ListNode) -> ListNode:..

2021-02-27 21:47:28 74

原创 [LeetCode链表] 21.合并两个有序链表(easy)

先来感受一下递归的优美:# Definition for singly-linked list.# class ListNode:# def __init__(self, val=0, next=None):# self.val = val# self.next = nextclass Solution: def mergeTwoLists(self, l1: ListNode, l2: ListNode) -> ListNode: .

2021-02-26 18:40:45 82

原创 [LeetCode数组] 11.盛最多水的容器(medium)

作为一个懒得思考的小白,上手这个题目当然就是最简单的遍历:class Solution: def maxArea(self, height: List[int]) -> int: acreage = 0 for i in range(len(height)-1): for j in range(i+1, len(height)): temp = height[i] * (j - i) if height.

2021-02-26 17:26:02 93

原创 Docker深入

Portainer可视化面板docker run -d -p 8088:9000 --restart=always -v /var/run/docker.sock:/var/run/docker.sock --privileged=true portainer/portainer## 直接在浏览器上输入IP:8088即可进入可视化界面进行管理联合文件系统一个应用在被pull时是分层下载,如果有的层在别的已经被下载的应用中包含了,则无需下载直接拿过来复用。Docker的镜像都是只读的,当我们把它

2021-02-26 16:04:39 160

原创 Docker命令

帮助命令docker versiondocker infodocker --help镜像命令docker imagesdocker images --help# 搜索镜像docker search mysql # 也可以在dockerhub上找# 下载镜像docker pull mysql# 删除镜像(推荐根据ID来删)docker rmi -f IDdocker rmi -f $(docker images -aq) ## 批量删除全部容器容器命令容器类似于实例对象,

2021-02-25 16:15:19 57

原创 阿里云服务器centos7上安装Docker

Docker的基本组成Docker的安装查看linux系统环境cat /etc/os-release安装相关组件yum install -y yum-utils设置镜像的仓库 yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo更新yum索引yum makecache fast安装dockeryum install docker-ce do

2021-02-24 23:14:29 147 1

原创 从链家网上爬取租房数据并进行数据分析

数据爬取(scrapy)# 创建工程scrapy startproject lianjiacd lianjiascrapy genspider gethouse www.xxx.comitems.pyimport scrapyclass LianjiaItem(scrapy.Item): # define the fields for your item here like: # name = scrapy.Field() name = scrapy.Field(

2021-02-23 22:46:27 1323 1

原创 【Flask】服务部署

下载nginxrpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpmyum install -y nginxsystemctl start nginx.servicesystemctl enable nginx.service如果启动服务时报错可以检查端口是否被占用ps aux|grep nginxkillall nginx安装gunico

2021-02-21 15:39:03 79

原创 【机器学习常用库】numpy

数理统计知识回顾ndarraynumpy提供了一个n维数组类型ndarrayimport numpy as np# ndarray形式score = np.array( [ [1, 2, 3], [4, 5, 6], [7, 8, 9] ])ndarray的属性# 设定数组的元素类型d = np.array([[1, 2, 3], [4, 5, 6]], dtype=np.float32)生成数组的方法

2021-02-20 22:15:07 132

原创 【机器学习常用库】matplotlib

matplotlib库简介专门用于开发2D图表(包括3D图表)以渐进、交互式方式实现数据可视化实现一个简单的matplotlib画图(以折线图为例)示例:import randomimport matplotlib.pyplot as pltx = range(60)y = [random.uniform(15, 18) for i in x]plt.figure(figsize=(20, 8), dpi=100)plt.plot(x, y)plt.show()绘图辅助

2021-02-19 22:18:12 115

原创 【人工智能】(一)机器学习概述

机器学习工作流程总结获取数据(数据分割,划分训练集和测试集)数据基本处理(缺失值、异常值处理)特征工程(特征提取、特征预处理、特征降维)机器学习(算法、模型训练)模型评估数据和特征决定了机器学习的上限,算法和模型只能是无限逼近这个上限。机器学习算法分类根据数据集的组成不同,可以分为:监督学习输入数据由输入特征值和目标值组成,输出为连续值的时候称为回归问题,离散值的时候称为分类问题无监督学习输入数据由输入特征值组成,无目标值,需要根据样本之间的相似度进行类别划分半监督学习训

2021-02-18 23:01:54 131

原创 【前端】JavaScript

JS的注释//单行注释/*多行注释 */两种引入方式写在script标签中通过script标签的src属性引入JS基本语法变量第一次定义一个变量名时需要用到关键字声明(var或者let)var name = 'mike'let name = 'mike' //ES6.0版本之后//区别:var在局部定义同名变量会影响全局变量,而let将同名的局部和全局变量分开处理常量const var PI = 3.14//与python不同的是,python中没有真正意义上的

2021-02-14 17:38:27 86

原创 【前端】CSS

基本选择器组合选择器分组与嵌套(,)伪类选择器(:)

2021-02-13 16:59:25 66

原创 【前端】HTML

head内常用标签:titlescriptstylelinkmetabody内常用标签:标签的两个重要属性:

2021-02-11 15:19:52 83

原创 【python爬虫】初识scrapy框架

Scrapy 是一套基于基于Twisted的异步处理框架,纯python实现的爬虫框架,用户只需要定制开发几个模块就可以轻松的实现一个爬虫,用来抓取网页内容以及各种图片,非常之方便~环境配置:pip install scrapyscrapy框架的初始化需要在Terminal中进行:(1)创建一个工程:scrapy startproject 工程名称(2)cd 工程名称(3)在spiders子目录中创建一个爬虫文件:scrapy genspider 文件名 www.xxx.com(4)接下来

2021-02-09 22:23:24 192

原创 【python爬虫】selenium模块

selenium模块是一个基于浏览器自动化的一个模块,它和我们之前接触的requests不太一样,requests提供模拟浏览器进行get或者post请求的一种自动爬取信息的方法,而selenium模块则是自动操控我们的浏览器进行一系列的操作。这样的好处就是可以便捷的获取网站中动态加载的数据,而且可以便捷实现模拟登录。...

2021-02-09 14:28:43 127

原创 【异步编程】aiohttp+多任务异步协程实现异步爬虫

按照之前博客中所提到的asyncio和爬虫知识,我们来写一个基于asyncio的异步爬虫来爬取我自己搭的一个简单的flask框架,每个路由sleep两秒当作网络IOimport timeimport asyncioimport requestsstart = time.time()urls = [ 'http://127.0.0.1:5000/hello', 'http://127.0.0.1:5000/thanks', 'http://127.0.0.1:5000/world', 'h

2021-02-08 21:45:15 349

原创 【python爬虫】数据解析

数据解析分类:正则bs4xpath数据解析原理概述:解析的局部的文本内容都会在标签中间或者标签对应的属性中进行存储一、正则常用正则:正则示例:这里要记录我走过的一个大坑我第一次用正则来进行数据解析的时候,是拿新浪图片这个网站开刀的(http://news.sina.com.cn/zt_d/street/),我想爬取这个页面中所有的“月选作品”图片,于是就右键检查找到对应图片的代码,是这样的:<img node-type="img" style="width: 100%;he

2021-02-07 11:45:16 283

原创 【python】日志文件

import loggingfrom logging.handlers import RotatingFileHandlerdef log_file(): # 设置日志的记录等级为DEBUG,DEBUG<INFO<WARNING<ERROR logging.basicConfig(level=logging.DEBUG) # 设置后大于等于该级别的信息都会输出 # 创建日志记录器,指明日志保存的路径、每个日志文件的最大大小,保存的日志文件的个数上限 file_

2021-02-05 22:55:48 125

原创 【python爬虫】两个简单的小例子

1.爬取百度的搜索结果import requestsurl = 'http://www.baidu.com/s'value = input('Search:')headers = { 'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.141 Safari/537.36'}param = { 'wd' : va

2021-02-04 21:50:10 97

原创 【python】迭代器和生成器

迭代器python中可被迭代的类型有:list、tuple、string、set、dict、bytes如何判断一个对象能不能被迭代呢?from collections.abc import Iterablemy_list = [1, 2, 3]print(isinstance(my_list, Iterable))自制迭代器:my_list = [1, 2, 3]it = iter(my_list)print(next(it))print(next(it))print(next(

2021-02-04 16:46:42 55

原创 【异步编程】(二)上手asyncio

事件循环理解成一个死循环,去检测并执行某些代码协程函数和协程对象比如:async def func():这样定义的一个函数就是协程函数执行协程函数得到的对象叫做协程对象:result = func(),注意这样执行只会生成对象,而不会执行func()函数的内部代码那么怎样才能执行它的内部代码呢,这就需要把协程对象交给事件循环去执行:import asyncioasync def func(): print(1)result = func()loop = asyncio.ge

2021-02-04 15:59:38 105

原创 【异步编程】(一)协程

协程(coroutine)不是计算机提供的,而是程序员人为创造的。协程又被称为微线程,是一种用户态的上下文切换技术。简而言之,就是通过一个线程实现代码块之间的相互切换执行。greenlet实现协程pip install greenletfrom greenlet import greenletdef func1(): print(1) gr2.switch() print(2) gr2.switch() print(3) gr2.switch()

2021-02-04 12:36:29 209

原创 【Python】设计模式之装饰器

我们先来看一个小例子:def f1(): print("This is f1")def f2(): print("This is f2")f1()f2()代码中定义了两个函数f1和f2,然后调用它们,结果显而易见。突然我们有了一个新的需求,每个功能的最开始我们需要做一个登录检查,怎么办?这是一种方法:def f1(): print("login check") print("This is f1")def f2(): print("login

2021-02-03 22:33:02 67

原创 【Redis】(二)基本操作

String类型redis清空数据:flashallHash类型Hash类型中,每个key可以对应多个field,每个field又有自己的value,可以看成是一个一对多的字典(key,field),这个field又是一个一对一的字典(field,value)List类型Set类型Zset类型python操作Redis安装redis库pip install redis导入相关类from redis import StrictRedis创建类对象,关联ip和port示例:

2021-02-03 17:02:47 112

原创 【Redis】(一)安装配置与启动

Redis下载与安装下载较新版本的redis在编译的时候会有一些问题,因此我下载的是较老的版本(3.2.10)cd /usr/localmkdir rediscd rediswget http://download.redis.io/releases/redis-3.2.10.tar.gztar -zxvf redis-3.2.10.tar.gzcd redis-3.2.10make 如果在make过程中出现错误应该是redis版本较新,gcc编译不了,可以参考博客:https://b

2021-02-02 21:57:03 84

原创 【python】socket编程(UDP/TCP)和http服务器

服务端:''' UDP# 创建import sockets = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)# 绑定s.bind(('192.168.0.105', 9000)) # 绑定的是本机的地址和端口# 接收# data, address = s.recvfrom(1024) # recvfrom是一个阻塞的方法# print("从IP地址为{},端口号为{}的地方接收到数据{}".format(address[0], add

2021-02-02 20:31:39 198

原创 【Flask】(九)一个简单的图书馆例子

这个例子实现了将数据库中的图书-作者信息展示到前端页面上,并对数据进行增删改查和实时显示的功能。最终的效果如下:from flask import Flask, render_template, redirect, request, flashfrom flask_sqlalchemy import SQLAlchemyfrom flask_wtf.csrf import CSRFProtectapp = Flask(__name__)app.config["SQLALCHEMY_DATAB

2021-02-02 20:24:56 111

原创 【Flask】(八)蓝图

蓝图单文件使用作用:模块化开发使用流程:创建蓝图对象使用蓝图装饰视图函数将蓝图注册到app中使用蓝图之后,我们就可以将视图函数从主函数中剥离出来,全部放到一个蓝图文件中。比如,我们先写一个蓝图文件:from flask import Blueprintblue = Blueprint("my_blue", __name__)# 使用蓝图装饰视图函数@blue.route('/')def index(): return 'index'@blue.route('/add

2021-02-02 20:18:59 144 1

原创 【Flask】(七)常见ORM模板代码

一对多class Role(db.Model): __tablename__ = 'roles' id= db.Column(db.Integer, primary_key=True) name = db.Column(db.String(64), unique=True) users = db.relationship('User', backref='role', lazy='dynamic')class User(db.Model): __tablena

2021-02-02 12:11:43 161

原创 【python】if not语句

我们知道,在python中if语句是用来做判断的,if X:语句中,如果X为True,则执行:后面的句子;如果X为False,则跳过:后的句子。现在我们在if和X中间加上一个not,if not X:,那么情况就恰好相反了,如果X为False,则执行:后面的句子;如果X为True,则跳过:后的句子。但是这里要注意的是,如果我们有时候仅仅是要判断一下X是不是None的时候,是不推荐用这条语句的,因为在python中 None, False, 空字符串"", 0, 空列表[], 空字典{}, 空元组()都

2021-02-02 10:24:13 3545 1

原创 【Flask】(六)ORM和数据库操作

ORM解释:对象关系映射模型特点:将类名和属性映射成数据库的表名和字段类的对象会映射成表的数据操作流程:安装扩展pip install flask_sqlalchemypip install flask_mysqldb/pymysql设置数据库的配置信息创建sqlalchemy对象db,关联app编写模型类,继承自db.Model操作数据库,进行增删改查from flask import Flaskfrom flask_sqlalchemy import SQLAl

2021-02-01 16:11:36 254

空空如也

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

TA关注的人

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