python
文章平均质量分 74
莫问收获,但问耕耘
滚滚长江东逝水,浪花淘尽英雄。
展开
-
中国疫情发展趋势分析预测(python实现)
中国疫情发展趋势预测笔者使用的增长模型预测中国疫情发展趋势,使用了3种增长模型进行了预测,这里只贴出利用逻辑斯蒂增长模型的代码。logistic增长的曲线也称为s型曲线。下图左图为曲线数量,右图为增长速率。逻辑斯蒂增长模型,又叫阻滞增长模型,逻辑斯蒂曲线通常分为5个时期:开始期,由于种群个体数很少,密度增长缓慢,又称潜伏期。 加速期,随个体数增加,密度增长加...原创 2020-03-06 15:28:49 · 36061 阅读 · 160 评论 -
信用评分卡模型
%matplotlib inlineimport pandas as pdimport numpy as npimport matplotlib.pyplot as plt import seaborn as snsimport warningsfrom scipy import statswarnings.filterwarnings('ignore')plt.style.u...原创 2019-12-26 11:23:02 · 644 阅读 · 1 评论 -
DBSCAN算法的说明文档
DBSCAN算法的描述 DBSCAN(Density-Based Spatial Clustering of Applications with Noise)是一个比较有代表性的基于密度的聚类算法。与划分和层次聚类方法不同,它将簇定义为密度相连的点的最大集合,能够把具有足够高密度的区域划分为簇,并可在噪声的空间数据库中发现任意形状的聚类。DBSCAN算法使用场景 如果数据集是稠密的,并且...原创 2019-11-11 18:06:45 · 2161 阅读 · 0 评论 -
python中类的继承
定义:class 子类名(基类1[,基类2,。。。]):语句块 如果类定义时,没有基类列表,等同于继承自object,在python3中,object类是所有对象的根基类 查看继承的属性和方法有: 特殊属性和方法含义示例__base__类的基类__bases__类的基类元组__mro__显示方法查找顺序,基类的元组mro()同上...原创 2019-07-07 13:34:37 · 238 阅读 · 0 评论 -
python面向对象
class MyClass: # class开头,类命名必须采用大驼峰格式, """A example of class""" # 文档字符串 x = 'abc' def foo(self): print('foo method')print(MyClass.__doc__)print(MyClass.x) # 访问属性print(MyCl...原创 2019-07-07 13:33:07 · 201 阅读 · 0 评论 -
方法的重写、覆盖(override)
super()可以访问到父类的类属性class Animal: x = 100 def shout(self): print('Animal shouts')class Cat(Animal): def shout(self): # 覆盖了父类的shout方法;override print('Mia')class Do...原创 2019-07-07 13:31:46 · 213 阅读 · 0 评论 -
上下文管理StringIO和BytesIO
import ioimport sysfrom io import StringIOfrom io import BytesIOsio = StringIO()print(sio.readable(), sio.writable(), sio.seekable())sio.write('abc')print(sio.read()) # 结果为空,因为写入后,文件指针在EOFs...原创 2019-07-07 13:30:32 · 178 阅读 · 0 评论 -
Git服务器搭建(gogs服务)
一、GIT1.1GogsGo语言开发的Git服务器。https://gogs.io/1.2 软件依赖1.2.1 Gityum install git -y1.2.2 Mysql$ yum install mariadb设置mysql数据库环境,mysql_secure_installation1.2.3 安装下载gogs安装程序gogs0.11.4_amd64.tar.gz,上...原创 2019-07-07 13:28:53 · 406 阅读 · 1 评论 -
随机整数生成类
第一种思路:不同的实例生成不同的随机数import randomclass RandomGen: def __init__(self, start=1, end=100, count=10): self.start = start self.end = end self.count = count def generate(...原创 2019-07-07 11:40:46 · 261 阅读 · 0 评论 -
python中的属性装饰器
class Person: def __init__(self, name, age=18): self.name = name self.__age = age @property # 属性装饰器,该装饰器装饰方法,下文中都必须用该方法 def age(self): # 给你看,不希望你修改 print('gette...原创 2019-07-07 11:39:59 · 1606 阅读 · 0 评论 -
文件IO之文件操作
文件操作1. 文件IO常用操作1.1打开操作 open(file, mode=‘r’, buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None) 打开一个文件,返回一个文件对象(流对象)和文件描述符,打开文件失败,则返回异常。基本使用:创建一个文件test,然后打开它,用完关闭。 ...原创 2019-07-07 14:32:27 · 275 阅读 · 0 评论 -
Web开发和WSGI
1. Web开发CS即客户端、服务器编程。客户端、服务端之间需要使用Socket,约定协议、版本(往往使用的协议是TCP或者UDP),指定地址和端口,就 可以通信了。 客户端、服务端传输数据,数据可以有一定的格式,双方必须先约定好。BS编程,即Browser、Server开发。Browser浏览器,一种特殊的客户端,支持HTTP(s)协议,能够通过URL向服务端发起请求,等...原创 2019-07-26 10:17:44 · 244 阅读 · 0 评论 -
博客项目之数据库设计和Django环境搭建
1. 分析博客系统核心模块有:用户管理:注册、登录、删改查用户; 博文管理:增删改查博文;需要数据库,本次使用Mysql 5.5, InnoDB引擎。需要支持多用户登录,各自可以管理自己的博文(增删改查),管理是不公开的,但是博文是不需要登录就可以公开浏览的。2.数据库设计创建数据库:create database if not exists blog;用户表user:...原创 2019-07-26 11:27:57 · 273 阅读 · 0 评论 -
Django模板设计
1. 模板如果使用react实现前端页面,其实Django就没有必须使用模板,它其实就是一个纯后台服务程序,接收请求,响应数据,前后端接口设计就可以是纯粹的Restful风格。 模板的目的就是为了可视化,将数据按照一定布局格式输出,而不是为了数据处理,所以一般不会有复杂的处理逻 辑。模板的引入实现了业务逻辑和显示格式的分离。这样,在开发中,就可以分工协作,页面开发完成页面布局设 计,后台开发完...原创 2019-07-26 14:15:30 · 392 阅读 · 0 评论 -
Restful API设计最佳实践
1. RestfulREST(Representational State Transfer),表现层状态转移。它首次出现在2000年Roy Fielding的博士论文中,Roy Fielding是HTTP规范的主要编写者之一。 表现层是资源的表现层,对于网络中的资源就需要URI(Uniform Resource Identififier)来指向。1.1协议使用HTTP或者HTTPS。...原创 2019-07-26 14:36:06 · 234 阅读 · 0 评论 -
博客项目之用户功能设计与实现(JWT、bcrypt、CSRF)
1. 用户功能设计与实现提供用户注册处理 提供用户登录处理 提供路由配置1.1 用户注册接口设计接收用户通过Post方法提交的注册信息,提交的数据是JSON格式数据,检查email是否已存在与数据库表中,如果存在,返回错误状态码,例如4xx,如果不存在,将用户提交的数据存入表中,整个过程都采用A JAX异步过程,用户提交JSON数据,服务端获取数据后处理,返回JSON。路由设...原创 2019-07-26 16:26:49 · 441 阅读 · 0 评论 -
博文之用户登录接口设计
1.用户登录接口设计接收用户通过POST方法提交的登录信息,提交的数据是JSON格式数据。从user表中email找出匹配的一条记录,验证密码是否正确。验证通过说明是合法用户登录,显示欢迎页面。 验证失败返回错误状态码,例如4xx整个过程都采用A JAX异步过程,用户提交JSON数据,服务端获取数据后处理,返回JSON。 路由配置:from django.conf.urls im...原创 2019-07-26 17:52:18 · 1397 阅读 · 0 评论 -
博文相关接口(博文的增删改查)
1. 功能分析POST /posts/ 文章发布,视图类PostView请求体 application/json{ "title":"string", "content":"string"}响应201 发布成功400 请求数据错误GET /posts/(\d+) 查看指定文章,视图函数getpost响应200 成功返回文章内容404 文章不存在GET /...原创 2019-07-26 19:44:06 · 444 阅读 · 0 评论 -
python爬虫解析库(Xpath、beautiful soup、Jsonpath)
1. HTML解析HTML的内容返回给浏览器,浏览器就会解析它,并对它渲染。 HTML 超文本表示语言,设计的初衷就是为了超越普通文本,让文本表现力更强。 XML 扩展标记语言,不是为了代替HTML,而是觉得HTML的设计中包含了过多的格式,承担了一部分数据之外的 任务,所以才设计了XML只用来描述数据。HTML和XML都有结构,使用标记形成树型的嵌套结构。DOM(Document Objec...原创 2019-07-27 22:28:43 · 2144 阅读 · 0 评论 -
python中的特殊属性
# animal.pyclass Animal: x = 123 def __init__(self, name): self.name = name self.age = 20 self.weight = 20y = 200print('animal Module\'s names = {}'.format(dir(...原创 2019-07-07 11:36:50 · 934 阅读 · 0 评论 -
python中的魔术方法
分类创建、初始化与销毁:__new____init__与__del__可视化(__str__,__repr__)hashbool预算符重载容器和大小可调用对象上下文管理反射描述器其他class A: # @staticmethod def __new__(cls, *args, **kwargs): # 静态方法 cls.test ...原创 2019-07-07 11:35:45 · 623 阅读 · 0 评论 -
python中的多继承
class Document: # 抽象基类 """抽象基类中可以定义多个抽象方法,可以全都不实现,只是约束子类的规范,子类中进行覆盖""" def __init__(self, content): self.content = content def print(self): # 抽象方法 ——> 抛出异常的方法(只定义不实现的方法) ...原创 2019-07-07 11:34:16 · 264 阅读 · 0 评论 -
SocketServer(socket、群聊、TCPserver、UDPserver)
1. SocketServersocket编程过于底层,编程虽然有套路,但是想要写出健壮的代码还是比较困难的,所以很多语言都对socket底层API进行封装,Python得封装就是--socketserver模块。它是网络服务编程框架,便于企业级快速开发。1.1 类的继承关系socketserver简化了网络服务器的编写。它有四个同步类:TCPServer UDPServer...原创 2019-06-17 17:23:44 · 1177 阅读 · 2 评论 -
python中的协程(coroutine)
1. asyncio库1.1 事件循环事件循环是asyncio提供的核心运行机制。1.2 协程协程不是线程,也不是进程,它是用户 空间调度的完成并发处理的方式 线程、进程是由操作系统调度,而协程是线程内完成调度,它不需要更多的线程,自然也没有多线程切换带类的开销 协程是非抢占式调度,只有一个协程主动让出控制权,另一个协程才会被调度 协程也不需要使用锁机制,因为是在同一个线...原创 2019-06-19 15:16:26 · 824 阅读 · 0 评论 -
IO同步、异步与多路复用
1. 重要概念1.1 同步、异步函数或方法被调用的时候,调用者是否能得到最终结果。直接得到最终结果的,就是同步调用,不直接得到最终结果的,就是异步调用。1.2 阻塞、非阻塞函数或方法调用的时候,是否like返回,立即返回就是非阻塞调用,不立即返回就是阻塞调用。同步、异步,与阻塞、给阻塞不相关,同步、异步强调的是,是否得到最终的结果,阻塞、非阻塞强调是时间,是否等待。 同步与...原创 2019-06-19 20:28:10 · 5108 阅读 · 3 评论 -
python下的ORM和SQLALchemy框架
1. ORMORM,对象关系映射,对象和关系的映射,使用面向对象的方式来操作数据库。关系模型和python对象之间的映射table => class , 表映射为类row => object ,行映射为实例column => property ,字段映射为属性2. SQLALchemySQLALchemy是一个ORM框架,SQLALch...原创 2019-06-26 15:26:17 · 329 阅读 · 0 评论 -
描述器Descriptors
1.1 描述器的表现用到三个魔术方法:get()、set()、delete()方法的签名如下:object.get(self, instance, owner)object.set(self, instance, owner)object.delete(self, instance)self指代当前实例,调用者instance是owner的实例owner是属性所属的类class ...原创 2019-06-26 16:56:17 · 192 阅读 · 0 评论 -
python中的魔术方法、上下文管理
1.可调用对象2.上下文管理2.1 上下文管理的安全性2.2 上下文应用场景3.反射原创 2019-06-26 17:14:37 · 235 阅读 · 0 评论 -
python中的元编程
python中所有非object类都继承自object类所有类的类型包括type类都是typetype类继承自object类,object类的类型也是type类1. type类1.1 type构建类def __init__(self): self.x = 1000def show(self): print(self.x)XClass = ...原创 2019-06-28 13:45:39 · 148 阅读 · 0 评论 -
python导入和模块化
1. 导入# import os.path # 注意os模块和path模块都加载了,但是dir()中只能拿到osimport os # import后只能写模块名import os.pathimport os.path as osp # 取别名,注意是os.path的别名,不是os的别名print(dir())# ['__annotations__', '__builtins_...原创 2019-07-02 09:39:20 · 784 阅读 · 0 评论 -
python实现单双链表
1. 单链表的简单实现class Node: def __init__(self, item, _next=None): self.item = item self.next = _next def __repr__(self): return repr(self.item)class SingleLinkedList: ...原创 2019-06-17 15:49:25 · 339 阅读 · 0 评论 -
网络编程之TCP编程(socket、服务端、客户端)
1. socket介绍1.1 socket套接字python中提供socket.py标准库,非常底层的接口库socket是一种通用的网络编程接口,和网络层次没一一对应的关系1.2 协议族AF表示Address Family,用于socket()第一个参数1.3 Socket类型2. TCP编程 socket编程,需要两端,一般来说需要一个服务端、一个客户端,服务端称为Serv...原创 2019-06-13 19:12:44 · 1116 阅读 · 0 评论 -
python实现json、ini、csv格式的文件转换
import jsonfrom configparser import ConfigParser# test.json'''[{"name": "apple", "price": "10", "amount": "3"},{"name": "tesla", "price": "100000", "amount": "1"},{"name": "mac", "price": "30...原创 2019-06-17 15:17:45 · 1463 阅读 · 0 评论 -
面向对象的补充(slots、tracemalloc、运算符重载中的反向方法)
1.1 tracemalloc标准库tracemalloc,可以统计内存使用情况。import tracemalloctracemalloc.start()d = [dict(zip('xy', (4, 5)))for i in range(1000000)] # 237Mt = [tuple(zip('xy', (4, 5)))for j in range(1000000)] ...原创 2019-07-07 11:32:46 · 158 阅读 · 0 评论 -
路径操作(python、Path)
路径拼接和分解操作符/Path对象 / Path对象Path对象 / 字符串字符串 / Path对象三种拼接方式的结果都是路径对象from os import path # python3.4之前使用这种方式from pathlib import Path # python3.4建议使用这种方式p = path.join('/etc', 'sysconfig', 'netwo...原创 2019-07-07 11:32:02 · 2061 阅读 · 0 评论 -
shutill模块
1. copy复制copyfileobj(fsrc, fdst[, length])文件对象的复制,fsrt 和fdst是open打开色文件对象,复制内容,fdst要求可写。length指定了表示buffer的大小。copyfile(src, dst, *, follow_symlinks=True),复制文件内容不含元数据,src、dst为文件的路径字符串,本质上调用的是copyfileob...原创 2019-07-07 11:31:04 · 421 阅读 · 0 评论 -
异常处理(exception)
异常 Exception错误Error逻辑错误:算法写错了笔误:例如变量名写错了函数或类使用错误总之错误是可以避免的异常Exception 这有个前提,没有出现上面所说的错误,也就是说程序写的没有问题,但是在某些情况下,会出现一些意外,导致程序无法正常执行下去。异常不可避免; 在高级编程语言中,一般都有错误和异常的概念,异常时可以捕获,并处理的,但是错误是不能被捕获的。...原创 2019-06-10 09:15:26 · 779 阅读 · 0 评论 -
并发编程之并发和线程(threading、进程)
1. 并发1.1 并发的基本概念1.1.1 并发和并行的区别1.1.2 并发的解决食堂打饭模型:队列、缓冲区(buffering)争抢预处理(缓存)并行(水平扩展)提速(垂直扩展)提高单个CPU性能,或单个服务器安装更多的CPU消息中间件 常见的消息中间件有RabbitMQ、ActiveMQ(Apache)、RocketMQ(阿里Apache)、kafka(Apache)...原创 2019-06-09 19:45:40 · 220 阅读 · 0 评论 -
csv文件、ini文件处理、序列化和反序列化、json
1.CSV文件逗号分割值Comma-Separeted-ValuesCSV是一个被行分隔符、列分隔符划分成行和列的文本文件。CSV不指定字符编码。行分隔符为\r\n,最后一行可以没有换行符。列分隔符为逗号或制表符每一行都称为一条记录record字段可以使用双引号括起来,也可以不使用,如果字段中出现了双引号、逗号、换行符必须使用双引号括起来,如果字段的值是双引号,使用两个双引号表示一个转...原创 2019-06-04 19:31:38 · 862 阅读 · 0 评论 -
网络编程之UDP编程(socket、群聊、服务端、客户端)
1. UDP编程1.1 UDP编程流程1.1.1 UDP服务端编程流程创建socket对象,socket.SOCK_DGRAM 绑定IP和Port,bind()方法 传输数据:接收数据,socket.recvfrom(bufsize[, flags]),获得一个二元组(string, address);发送数据,socket.sendto(string, address),发送给某...原创 2019-07-05 12:40:26 · 400 阅读 · 0 评论