摘要:
一,保存logging 信息 # 保存log信息的文件名 LOG_LEVEL = "INFO" LOG_STDOUT = True LOG_ENCODING = 'utf-8' # 路径 os.path.dirname(os.path.dirname(os.path.dirname(__file__
阅读全文
posted @ 2018-12-17 20:29
守护式等待
阅读(772)
推荐(0)
摘要:
一,requests发请求 s = requests.Session() payload = {'key1': 'value1', 'key2': 'value2'} proxies = {'http': 'http://47.98.163.18:8080', 'https': 'http://47
阅读全文
posted @ 2018-12-17 16:25
守护式等待
阅读(1118)
推荐(0)
摘要:
一,scrapy请求 yield scrapy.Request(url=url, dont_filter=True, callback=self.page, meta={'item': copy.deepcopy(item)}) yield scrapy.FormRequest(url=self.u
阅读全文
posted @ 2018-12-17 16:05
守护式等待
阅读(596)
推荐(0)
摘要:
一些常用设置: 1. pycharm默认是自动保存的,习惯自己按ctrl + s 的可以进行如下设置:1. file -> Setting -> General -> Synchronization -> Save files on frame deactivation 和 Save files a
阅读全文
posted @ 2018-12-17 15:57
守护式等待
阅读(245)
推荐(0)
摘要:
Linux在/etc/hosts中添加 0.0.0.0 account.jetbrains.com就好,直接添加:0.0.0.0 account.jetbrains.comwindows的话没记错应该在C:\Windows\System32\drivers\etc\hosts
阅读全文
posted @ 2018-12-17 15:56
守护式等待
阅读(318)
推荐(0)
摘要:
1、编辑(Editing) Ctrl + Space 基本的代码完成(类、方法、属性)Ctrl + Alt + Space 快速导入任意类Ctrl + Shift + Enter 语句完成Ctrl + P 参数信息(在方法中调用参数)Ctrl + Q 快速查看文档Shift + F1 外部文档Ctr
阅读全文
posted @ 2018-12-17 15:56
守护式等待
阅读(302)
推荐(0)
摘要:
import platform # 判断当前代码运行的系统是windows还是liunx print(platform.architecture()) print(platform.platform()) print(platform.system()) if 'indow' in platform.system(): symbol = r'\\' else: symbol = r'...
阅读全文
posted @ 2018-12-17 15:53
守护式等待
阅读(457)
推荐(0)
摘要:
一,设置表自增id从1开始 alter table papa_group(表名称) AUTO_INCREMENT=1 二,查看每个字段的重复次数 select drugLicense,count(*) as count from drug_instruction20181211 group by d
阅读全文
posted @ 2018-12-17 15:51
守护式等待
阅读(114)
推荐(0)
摘要:
设置网络ipvi /etc/network/interfaces复制进去auto ens33iface ens33 inet static# 192.168.1.246 ip地址address 192.168.1.246netmask 255.255.255.0# dns服务器 192.168.1.
阅读全文
posted @ 2018-12-17 15:48
守护式等待
阅读(145)
推荐(0)
摘要:
Pandas时间序列 pandas 提供了一组标准的时间序列处理工具和数据算法 数据类型及操作 Python 标准库的 datetime datetime 模块中的 datetime、 time、 calendar 等类都可以用来存储时间类型以及进行一些转换和运算操作。 datetime 对象间的减
阅读全文
posted @ 2018-12-17 15:31
守护式等待
阅读(444)
推荐(0)
摘要:
在DataFrame中,plot()可以绘制所有带有标签的列
阅读全文
posted @ 2018-12-17 15:29
守护式等待
阅读(322)
推荐(0)
摘要:
pandas库的数据类型运算 算数运算法则 根据行列索引,补齐运算(不同索引不运算,行列索引相同才运算),默认产生浮点数 补齐时默认填充NaN空值 二维和一维,一维和0维之间采用广播运算(低维元素与每一个高维元素运算) 采用 +-*/符号的二元运算会产生新的对象 除了使用+-*/,也可使用方法形式,
阅读全文
posted @ 2018-12-17 15:28
守护式等待
阅读(313)
推荐(0)
摘要:
Pandas分类 categorical data是指分类数据:数据类型为:男女、班级(一班、二班)、省份(河北、江苏等),若使用赋值法给变量赋值,例如(男=1,女=0),数字1,0之间没有大小之分,不能认为1是比0大的。 numerical data是指数值型数据:收入(1000元,500元),是
阅读全文
posted @ 2018-12-17 15:28
守护式等待
阅读(627)
推荐(0)
摘要:
Pandas数据排序 .sort_index() 在指定轴上根据索引进行排序,索引排序后内容会跟随排序 .sort_values() 在指定轴上根据数值进行排序,默认升序 Series.sort_values(axis=0,ascending=True) DataFrame.sort_values(
阅读全文
posted @ 2018-12-17 15:27
守护式等待
阅读(309)
推荐(0)
摘要:
pandas数据操作 字符串方法 Series对象在其str属性中配备了一组字符串处理方法,可以很容易的应用到数组中的每个元素 数据转置(行列转换) 对齐 操作不同的维度需要先对齐,Pandas会沿着指定维度执行: 这里对齐维度指的是对齐index shift(2)指沿着时间轴将数据顺移两位 sub
阅读全文
posted @ 2018-12-17 15:26
守护式等待
阅读(211)
推荐(0)
摘要:
Pandas存取CSV 写入CSV 读取CSV 读取CSV其他参数 csv文件内有汉字等特殊符号时,csv文件编码应为utf-8(无BOM)可默认正常读取,如果编码是ANSI,加参数encoding='GBK' 数据内有逗号时,左右加英文半角双引号,可以正常解析 Pandas存取HDF5 写入HDF
阅读全文
posted @ 2018-12-17 15:25
守护式等待
阅读(427)
推荐(0)
摘要:
Pandas统计分析 pandas数据的基本统计分析 和numpy的函数近似 基本统计分析函数 .describe() 针对0轴(列)的统计汇总,计数/平均值/标准差/最小值/四分位数/最大值 .sum() 计算数据的总和,按0轴计算(各行计算),下同,要按列计算参数1 .count() 非NaN值
阅读全文
posted @ 2018-12-17 15:24
守护式等待
阅读(390)
推荐(0)
摘要:
Pandas数据规整 数据分析和建模方面的大量编程工作都是用在数据准备上的,有时候存放在文件或数据库中的数据并不能满足数据处理应用的要求 Pandas提供了一组高级的、灵活的、高效的核心函数和算法,它们能够轻松地将数据规整化为你需要的的形式 合并 连接 Pandas提供了大量方法,能轻松的对Seri
阅读全文
posted @ 2018-12-17 15:23
守护式等待
阅读(219)
推荐(0)
摘要:
Pandas缺失数据处理 Pandas用np.nan代表缺失数据 reindex() 可以修改 索引,会返回一个数据的副本: 对缺失值进行填充 丢掉含有缺失项的行: 对缺失项布尔赋值
阅读全文
posted @ 2018-12-17 15:22
守护式等待
阅读(267)
推荐(0)
摘要:
DataFrame查增改删 查 Read 类list/ndarray数据访问方式 下面为Pandas专用的数据访问方式 .loc 通过自定义索引获取数据 .iloc 通过默认索引获取数据 Boolean索引 增 Create 改 Update
阅读全文
posted @ 2018-12-17 15:21
守护式等待
阅读(233)
推荐(0)
摘要:
数据类型-DataFrame DataFrame是由多个Series数据列组成的表格数据类型,每行Series值都增加了一个共用的索引 既有行索引,又有列索引 行索引,表明不同行,横向索引,叫index,0轴,axis=0 列索引,表名不同列,纵向索引,叫columns,1轴,axis=1 Data
阅读全文
posted @ 2018-12-17 15:20
守护式等待
阅读(1610)
推荐(0)
摘要:
数据类型-Series Series数据类型由一组数据和数据相关的索引组成,键 -> 值 Series数据类型可视为:一维 带标签 数组 Series基本操作类似数组和字典 Series数据类型的创建 首先载入库 Python list列表 创建Series 标量值 创建Series Python字
阅读全文
posted @ 2018-12-17 15:18
守护式等待
阅读(982)
推荐(0)
摘要:
pyplot-常用图表 介绍最常用的:折线图、散点图、柱状图、直方图、饼图 的绘制 需要学习的不只是如何绘图,更是什么样的数据用什么图表显示效果最好 折线图 折线图用于显示随时间或有序类别的变化趋势 见:pyplot-plot绘图 散点图 散点图可以显示若干数据系列中各数值之间是否存在相关性 坐标系
阅读全文
posted @ 2018-12-17 15:16
守护式等待
阅读(602)
推荐(0)
摘要:
pyplot图像组件 ax子对象的组件内容 Title 图表标题 plt.title() Axis 坐标范围,x轴,y轴 plt.axis() label 坐标轴标注 plt.xlabel() plt.ylabel() Tick 刻度线,Tick Label 刻度标注 plt.xticks() pl
阅读全文
posted @ 2018-12-17 15:14
守护式等待
阅读(347)
推荐(0)
摘要:
pyplot绘图区域 Matplotlib图像组成 matplotlib中,整个图像为一个Figure对象,与用户交互的整个窗口 Figure对象中包含一个或多个Axes(ax)子对象,每个ax子对象都是一个拥有自己坐标系的绘图区域 创建figure窗口对象 plt.figure(num=None,
阅读全文
posted @ 2018-12-17 15:12
守护式等待
阅读(575)
推荐(0)
摘要:
pyplot文本显示 pyplot中文字符显示 pyplot默认不支持中文字符,因为默认字体是sans-serif,英文字体不能显示中文 方法1,修改需要输出中文字符的地方 在有中文输出的地方,添加属性:fontproperties 优点,使用方便,影响范围可控 缺点:不是所有输出中文的方法都有fo
阅读全文
posted @ 2018-12-17 15:09
守护式等待
阅读(500)
推荐(0)
摘要:
plot绘图 坐标系图(折线图) 折线图用于显示随时间或有序类别的变化趋势 plt.plot(x,y,format_string,**kwargs) y:Y轴数据,列表或数组,必选 x:X轴数据,列表或数组,可选 format_strong:线条样式格式字符串,可选 **kwargs:第二组或更多(
阅读全文
posted @ 2018-12-17 15:08
守护式等待
阅读(781)
推荐(0)
摘要:
Numpy随机数 np.random随机数子库 1: 基本函数 .rand(d0,d1,..dn):创建d0-dn维度的随机数数组,浮点数,范围从0-1,均匀分布 .randn(d0,d1,..dn):功能同上,区别:范围不定,标准正态分布 .randint(low,high,(shape)):根据
阅读全文
posted @ 2018-12-17 15:03
守护式等待
阅读(313)
推荐(0)
摘要:
2:其他统计函数 min(a,axis=None) max(a,axis=None):计算数组a中元素的最小值、最大值 argmin(a,axis=None) argmax(a,axis=None):计算数组a中元素最小值、最大值的降1维后下标(寻找某元素,得到它的 一维扁平化 后的位置) ptp(
阅读全文
posted @ 2018-12-17 15:03
守护式等待
阅读(220)
推荐(0)
摘要:
CSV文件存取 Comma-Separated Value,逗号分隔值文件 一种数据存储格式 广泛支持 类表格 存储一维或二维数据 文本格式 CSV文件: 显示:表格状态 源文件:换行和逗号分隔行列的格式化文本 Numpy存储CSV文件 将ndarray数组写入CSV文件中 np.savetxt(f
阅读全文
posted @ 2018-12-17 15:02
守护式等待
阅读(741)
推荐(0)
摘要:
ndarray ndarray-多维数组对象 ndarray数组分两部分 实际数据 描述数据的元数据(数据类型/维度等) 实际数据 描述数据的元数据(数据类型/维度等) ndarray所有元素类型相同,下标从0开始 ndarray基本概念 特征:能描述物体的最小粒度 维度(维数):描述一个对象所需的
阅读全文
posted @ 2018-12-17 15:01
守护式等待
阅读(819)
推荐(0)
摘要:
Numpy Numpy(Numerical Python)是一个开源的、Python数值计算库,也是大部分PY科学计算类库的基础库,用于在大型、多维数组(矩阵)上执行数值运算 最早叫Numeric,后来分化为Numpy和Scipy,借鉴自MATLAB ndarray数据类型:N维数组对象 是Scip
阅读全文
posted @ 2018-12-17 14:54
守护式等待
阅读(127)
推荐(0)
摘要:
一、安装和配置虚拟环境 安装虚拟环境 二、配置虚拟环境 1.创建虚拟环境管理目录 2.打开.bashrc 3.在.bashrc的末尾增加下面内容 4.启动配置文件 三、创建虚拟环境 1.创建虚拟环境 2.创建指定python版本的虚拟环境 3.运行环境 4.退出虚拟环境 5.删除虚拟环境
阅读全文
posted @ 2018-12-17 14:40
守护式等待
阅读(207)
推荐(0)
摘要:
vim使用方法: 模式: 编辑模式、未编辑模式、命令行模式 i 插入形式进入编辑模式 a 增加 o 下行编辑 O 上行插入 : 进入命令行模式 esc 退出编辑模式 wq 保存文件 yy 复制 p 粘贴 dd 删除当行 / 搜索具体内容 dG 删除当行以及文件末尾所有内容 ^ 跳转行首位置 $ 挑战
阅读全文
posted @ 2018-12-17 14:38
守护式等待
阅读(128)
推荐(0)
摘要:
1.linux基础命令: echo 输出我写的内容 ls 查看当前目录的文件 pwd 查看当前目录 ifconfig 查看网卡信息 grep 过滤 -v 取反 -n man 查看命令的帮助信息 md5sum 加密 ll 显示文件的属性信息 ls -l cp 拷贝文件 whereis 查看命令在哪里
阅读全文
posted @ 2018-12-17 14:36
守护式等待
阅读(326)
推荐(0)
摘要:
from collections import defaultdict import logging import pprint from scrapy.exceptions import NotConfigured from scrapy.utils.misc import load_object from scrapy.utils.defer import process_parallel...
阅读全文
posted @ 2018-12-17 14:33
守护式等待
阅读(413)
推荐(0)
摘要:
Scrapy 和 scrapy-redis的区别 Scrapy 是一个通用的爬虫框架,但是不支持分布式,Scrapy-redis是为了更方便地实现Scrapy分布式爬取,而提供了一些以redis为基础的组件(仅有组件)。 pip install scrapy-redis Scrapy-redis提供
阅读全文
posted @ 2018-12-17 14:31
守护式等待
阅读(552)
推荐(0)
摘要:
CrawlSpiders 通过下面的命令可以快速创建 CrawlSpider模板 的代码: scrapy genspider -t crawl tencent tencent.com 上一个案例中,我们通过正则表达式,制作了新的url作为Request请求参数,现在我们可以换个花样... class
阅读全文
posted @ 2018-12-17 14:30
守护式等待
阅读(322)
推荐(0)
摘要:
Spider Spider类定义了如何爬取某个(或某些)网站。包括了爬取的动作(例如:是否跟进链接)以及如何从网页的内容中提取结构化数据(爬取item)。 换句话说,Spider就是您定义爬取的动作及分析某个网页(或者是有些网页)的地方。 class scrapy.Spider是最基本的类,所有编写
阅读全文
posted @ 2018-12-17 14:28
守护式等待
阅读(595)
推荐(0)
摘要:
Scrapy 框架 Scrapy是用纯Python实现一个为了爬取网站数据、提取结构性数据而编写的应用框架,用途非常广泛。 框架的力量,用户只需要定制开发几个模块就可以轻松的实现一个爬虫,用来抓取网页内容以及各种图片,非常之方便。 Scrapy 使用了 Twisted['twɪstɪd](其主要对手
阅读全文
posted @ 2018-12-17 14:25
守护式等待
阅读(200)
推荐(0)
摘要:
Selenium Selenium是一个Web的自动化测试工具,最初是为网站自动化测试而开发的,类型像我们玩游戏用的按键精灵,可以按指定的命令自动操作,不同是Selenium 可以直接运行在浏览器上,它支持所有主流的浏览器(包括PhantomJS这些无界面的浏览器)。 Selenium 可以根据我们
阅读全文
posted @ 2018-12-17 14:23
守护式等待
阅读(500)
推荐(0)
摘要:
数据提取之JSON与JsonPATH JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,它使得人们很容易的进行阅读和编写。同时也方便了机器进行解析和生成。适用于进行数据交互的场景,比如网站前台与后台之间的数据交互。 JSON和XML的比较可谓不相上下。 P
阅读全文
posted @ 2018-12-17 14:21
守护式等待
阅读(276)
推荐(0)
摘要:
CSS 选择器:BeautifulSoup4 和 lxml 一样,Beautiful Soup 也是一个HTML/XML的解析器,主要的功能也是如何解析和提取 HTML/XML 数据。 lxml 只会局部遍历,而Beautiful Soup 是基于HTML DOM的,会载入整个文档,解析整个DOM树
阅读全文
posted @ 2018-12-17 14:20
守护式等待
阅读(326)
推荐(0)
摘要:
什么是XML XML 指可扩展标记语言(EXtensible Markup Language) XML 是一种标记语言,很类似 HTML XML 的设计宗旨是传输数据,而非显示数据 XML 的标签需要我们自行定义。 XML 被设计为具有自我描述性。 XML 是 W3C 的推荐标准 W3School官
阅读全文
posted @ 2018-12-17 14:18
守护式等待
阅读(215)
推荐(0)
摘要:
使用github的流程 在实际项目开发中,按照如下步骤使用git进行代码管理 1.项目经理在开发之初,创建好仓库,上传项目的框架、组员分支 2.组员克隆项目框架,同步分支,按分工开发,在分支提交代码 3.在需要发布时,项目经理将各分支合并到dev上,再合并到master上 git将代码开发分成了工作
阅读全文
posted @ 2018-12-17 14:08
守护式等待
阅读(250)
推荐(0)
摘要:
布署 当项目开发完成后,需要将项目代码放到服务器上,这个服务器拥有固定的IP,再通过域名绑定,就可以供其它人浏览,对于python web开发,可以使用wsgi、apache服务器,此处以wsgi为例进行布署 服务器首先是物理上的一台性能高、线路全、运行稳定的机器,分为私有服务器、公有服务器 私有服
阅读全文
posted @ 2018-12-17 14:06
守护式等待
阅读(388)
推荐(0)
摘要:
celery 情景:用户发起request,并等待response返回。在本些views中,可能需要执行一段耗时的程序,那么用户就会等待很长时间,造成不好的用户体验,比如发送邮件、手机验证码等 使用celery后,情况就不一样了 解决:将耗时的程序放到celery中执行 点击查看celery官方网站
阅读全文
posted @ 2018-12-17 14:03
守护式等待
阅读(205)
推荐(0)
摘要:
全文检索 全文检索不同于特定字段的模糊查询,使用全文检索的效率更高,并且能够对于中文进行分词处理 haystack:全文检索的框架,支持whoosh、solr、Xapian、Elasticsearc四种全文检索引擎,点击查看官方网站 whoosh:纯Python编写的全文搜索引擎,虽然性能比不上sp
阅读全文
posted @ 2018-12-17 14:00
守护式等待
阅读(185)
推荐(0)
摘要:
发送邮件 Django中内置了邮件发送功能,被定义在django.core.mail模块中 发送邮件需要使用SMTP服务器,常用的免费服务器有:163、126、QQ,下面以163邮件为例 注册163邮箱itcast88,登录后设置 在新页面中点击“客户端授权密码”,勾选“开启”,弹出新窗口填写手机验
阅读全文
posted @ 2018-12-17 13:59
守护式等待
阅读(173)
推荐(0)
摘要:
验证码 在用户注册、登录页面,为了防止暴力请求,可以加入验证码功能,如果验证码错误,则不需要继续处理,可以减轻业务服务器、数据库服务器的压力 手动实现验证码 接下来的代码不要求手动写出来,因为这种代码在网上可以搜到很多 安装包Pillow3.4.1 点击查看PIL模块API,以下代码中用到了Imag
阅读全文
posted @ 2018-12-17 13:41
守护式等待
阅读(195)
推荐(0)
摘要:
CSRF CSRF全拼为Cross Site Request Forgery,译为跨站请求伪造。CSRF指攻击者盗用了你的身份,以你的名义发送恶意请求。CSRF能够做的事情包括:以你名义发送邮件,发消息,盗取你的账号,甚至于购买商品,虚拟货币转账......造成的问题包括:个人隐私泄露以及财产安全。
阅读全文
posted @ 2018-12-17 13:40
守护式等待
阅读(150)
推荐(0)
摘要:
HTML转义 模板对上下文传递的字符串进行输出时,会对以下字符自动转义 示例 打开booktest/views.py文件,创建视图zhuanyi 打开booktest/urls.py文件,配置url 在templates/booktest/目录下创建zhuanyi.html 运行服务器,在浏览器中输
阅读全文
posted @ 2018-12-17 13:37
守护式等待
阅读(3135)
推荐(0)
摘要:
模板继承 模板继承和类的继承含义是一样的,主要是为了提高代码重用,减轻开发人员的工作量 典型应用:网站的头部、尾部信息 父模板 如果发现在多个模板中复制一段代码,那就应该把这段内容定义到父模板中 标签block:用于在父模板中预留区域,留给子模板填充差异性的内容,名字不能相同 为了更好的可读性,建议
阅读全文
posted @ 2018-12-17 13:36
守护式等待
阅读(204)
推荐(0)
摘要:
URLconf 浏览者通过在浏览器的地址栏中输入网址请求网站,对于Django开发的网站,由哪一个视图进行处理请求,是由url匹配找到的 配置 在test3/settings.py中通过ROOT_URLCONF指定url配置 打开test3/urls.py可以看到默认配置 在test3/urls.p
阅读全文
posted @ 2018-12-17 13:34
守护式等待
阅读(242)
推荐(0)
摘要:
视图 视图就是python中的函数 视图一般被定义在“应用/views.py”文件中,此例中为“booktest/views.py”文件 视图的第一个参数必须为HttpRequest实例,还可能包含下参数如 通过正则表达式组获得的关键字参数 通过正则表达式组获取的位置参数 视图必须返回一个HttpR
阅读全文
posted @ 2018-12-17 13:34
守护式等待
阅读(119)
推荐(0)
摘要:
查询集 查询集表示从数据库中获取的对象集合,在管理器上调用过滤器方法会返回查询集,查询集可以含有零个、一个或多个过滤器 过滤器基于所给的参数限制查询的结果 从Sql的角度,查询集和select语句等价,过滤器像where和limit子句 两大特性 惰性执行:创建查询集不会访问数据库,直到调用数据时,
阅读全文
posted @ 2018-12-17 13:29
守护式等待
阅读(200)
推荐(0)
摘要:
定义模型类 模型类被定义在“应用/models.py”文件中,此例中为“booktest/models.py”文件 模型类必须继承自Model类,位于包django.db.models中 提示:对于重要数据使用逻辑删除 定义属性 Django根据属性的类型确定以下信息: 当前选择的数据库支持字段的类
阅读全文
posted @ 2018-12-17 13:25
守护式等待
阅读(185)
推荐(0)
摘要:
创建图书管理项目 在django中,项目的组织结构为一个项目包含多个应用,一个应用对应一个业务模块 示例:创建项目的名称为test1,完成“图书-英雄”信息的维护,创建应用名称为booktest 创建项目 在当前用户的某个目录下创建项目,这样不会发生权限问题 此处在/home/Desktop/pyt
阅读全文
posted @ 2018-12-17 13:21
守护式等待
阅读(176)
推荐(0)
摘要:
二叉树 二叉树的基本概念 二叉树是每个节点最多有两个子树的树结构。通常子树被称作“左子树”(left subtree)和“右子树”(right subtree) 二叉树的性质(特性) 性质1: 在二叉树的第i层上至多有2^(i-1)个结点(i>0)性质2: 深度为k的二叉树至多有2^k - 1个结点
阅读全文
posted @ 2018-12-17 11:11
守护式等待
阅读(127)
推荐(0)
摘要:
树与树算法 树的概念 树(英语:tree)是一种抽象数据类型(ADT)或是实作这种抽象数据类型的数据结构,用来模拟具有树状结构性质的数据集合。它是由n(n>=1)个有限节点组成一个具有层次关系的集合。把它叫做“树”是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。它具有以下的特点: 每个
阅读全文
posted @ 2018-12-17 11:10
守护式等待
阅读(147)
推荐(0)
posted @ 2018-12-17 11:08
守护式等待
阅读(221)
推荐(0)
摘要:
搜索 搜索是在一个项目集合中找到一个特定项目的算法过程。搜索通常的答案是真的或假的,因为该项目是否存在。 搜索的几种常见方法:顺序查找、二分法查找、二叉树查找、哈希查找 二分法查找 二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。因此,折半
阅读全文
posted @ 2018-12-17 11:08
守护式等待
阅读(138)
推荐(0)
摘要:
归并排序 归并排序是采用分治法的一个非常典型的应用。归并排序的思想就是先递归分解数组,再合并数组。 将数组分解最小之后,然后合并两个有序数组,基本思路是比较两个数组的最前面的数,谁小就先取谁,取了后相应的指针就往后移一位。然后再比较,直至一个数组为空,最后把另一个数组的剩余部分复制过来即可。 归并排
阅读全文
posted @ 2018-12-17 11:07
守护式等待
阅读(139)
推荐(0)
摘要:
快速排序 快速排序(英语:Quicksort),又称划分交换排序(partition-exchange sort),通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数
阅读全文
posted @ 2018-12-17 11:06
守护式等待
阅读(194)
推荐(0)
摘要:
希尔排序 希尔排序(Shell Sort)是插入排序的一种。也称缩小增量排序,是直接插入排序算法的一种更高效的改进版本。希尔排序是非稳定排序算法。该方法因DL.Shell于1959年提出而得名。 希尔排序是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序;随着增量逐渐减少,每组包含的关键词
阅读全文
posted @ 2018-12-17 11:06
守护式等待
阅读(113)
推荐(0)
摘要:
插入排序 插入排序(英语:Insertion Sort)是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上,在从后向前扫描过程中,需要反复把已排序元素逐步向后挪位,为最新元素提供插入空间。 插入排序分析 时间复杂
阅读全文
posted @ 2018-12-17 11:05
守护式等待
阅读(116)
推荐(0)
摘要:
选择排序 选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理如下。首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。 选择排序的主要优点与数据移动有
阅读全文
posted @ 2018-12-17 11:04
守护式等待
阅读(205)
推荐(0)
摘要:
冒泡排序 冒泡排序(英语:Bubble Sort)是一种简单的排序算法。它重复地遍历要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。遍历数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。 冒泡
阅读全文
posted @ 2018-12-17 11:03
守护式等待
阅读(139)
推荐(0)
摘要:
Python内置类型性能分析 timeit模块 timeit模块可以用来测试一小段Python代码的执行速度。 class timeit.Timer(stmt='pass', setup='pass', timer=<timer function>) Timer是测量小段代码执行速度的类。 stmt
阅读全文
posted @ 2018-12-17 11:01
守护式等待
阅读(309)
推荐(0)
摘要:
常见时间复杂度 注意,经常将log2n(以2为底的对数)简写成logn 常见时间复杂度之间的关系 所消耗的时间从小到大 O(1) < O(logn) < O(n) < O(nlogn) < O(n2) < O(n3) < O(2n) < O(n!) < O(nn) 练习: 时间复杂度练习( 参考算法
阅读全文
posted @ 2018-12-17 11:00
守护式等待
阅读(323)
推荐(0)
摘要:
备份 语法 -h:服务器地址,也可以指定端口号 -d:需要备份的数据库名称 -o:备份的数据存放位置,此目录中存放着备份出来的数据 例1 恢复 语法 -h:服务器地址 -d:需要恢复的数据库实例 --dir:备份数据所在位置 例2
阅读全文
posted @ 2018-12-17 10:53
守护式等待
阅读(124)
推荐(0)
摘要:
聚合 aggregate 聚合(aggregate)主要用于计算数据,类似sql中的sum()、avg() 语法 管道 管道在Unix和Linux中一般用于将当前命令的输出结果作为下一个命令的输入 在mongodb中,管道具有同样的作用,文档处理完毕后,通过管道进行下一次处理 常用管道 $group
阅读全文
posted @ 2018-12-17 10:52
守护式等待
阅读(317)
推荐(0)
摘要:
索引 在mysql中已经学习了索引,并知道索引对于查询速度的提升 mongodb也支持索引,以提升查询速度 步骤一:创建大量数据 在命令行中执行如下代码,向集合中插入10万条文档 注意:不要在图形界面中执行,因为软件原因无法插入10万条数据就会中断执行 步骤二:数据查找性能分析 查找姓名为'test
阅读全文
posted @ 2018-12-17 10:52
守护式等待
阅读(156)
推荐(0)
摘要:
数据查询 基本查询 方法find():查询 方法findOne():查询,只返回第一个 方法pretty():将结果格式化 比较运算符 等于,默认是等于判断,没有运算符 小于$lt 小于或等于$lte 大于$gt 大于或等于$gte 不等于$ne 例1:查询名称等于'郭靖'的学生 例2:查询年龄大于
阅读全文
posted @ 2018-12-17 10:48
守护式等待
阅读(4149)
推荐(0)
摘要:
集合命令 创建语法如下 name是要创建的集合的名称 options是一个文档,用于指定集合的配置,选项参数是可选的,所以只需要到指定的集合名称 可以不手动创建集合,向不存在的集合中第一次加入数据时,集合会被创建出来 例1:不限制集合大小 例2:限制集合大小,后面学会插入语句后可以查看效果 参数
阅读全文
posted @ 2018-12-17 10:45
守护式等待
阅读(388)
推荐(0)
摘要:
数据库命令 连接成功后,默认使用test数据库 查看当前数据库名称 查看所有数据库名称,列出所有在物理上存在的数据库 切换数据库,如果数据库不存在也并不创建,直到插入数据或创建集合时数据库才被创建 删除当前指向的数据库,如果数据库不存在,则什么也不做 插入 语法 插入文档时,如果不指定_id参数,M
阅读全文
posted @ 2018-12-17 10:44
守护式等待
阅读(375)
推荐(0)
posted @ 2018-12-17 10:42
守护式等待
阅读(14)
推荐(0)
摘要:
zset sorted set,有序集合 元素为string类型 元素具有唯一性,不重复 每个元素都会关联一个double类型的score,表示权重,通过权重将元素从小到大排序 说明:没有修改操作 增加 添加 zadd key score1 member1 score2 member2 ... 例1
阅读全文
posted @ 2018-12-17 10:42
守护式等待
阅读(316)
推荐(0)
摘要:
list 列表的元素类型为string 按照插入顺序排序 增加 在左侧插入数据 lpush key value1 value2 ... 例1:从键为'py11'的列表左侧加入数据'dx'、'xd' lpush 'py11' 'dx' 'xd' 在右侧插入数据 rpush key value1 val
阅读全文
posted @ 2018-12-17 10:41
守护式等待
阅读(220)
推荐(0)
摘要:
hash hash用于存储对象,对象的结构为属性、值 值的类型为string 增加、修改 设置单个属性 hset key field value 例1:设置键'py2'的属性'name'为'hr' hset 'py2' 'name' 'hr' 设置多个属性 hmset key field1 valu
阅读全文
posted @ 2018-12-17 10:41
守护式等待
阅读(67)
推荐(0)
摘要:
string string是redis最基本的类型 最大能存储512MB数据 string类型是二进制安全的,可以存储任何数据,比如数字、图片等 增加、修改 如果设置的键不存在则为添加,如果设置的键已经存在则修改 设置键值 set key value 例1:设置键为'py1'值为'gj'的数据 se
阅读全文
posted @ 2018-12-17 10:40
守护式等待
阅读(46)
推荐(0)
摘要:
键命令 查找键,参数支持正则表达式 keys pattern 例1:查看所有键 keys * 例2:查看名称中包含a的键 keys '*a*' 判断键是否存在,如果存在返回1,不存在返回0 exists key1 例3:判断键'py1'、'py2'是否存在 exists 'py1' exists '
阅读全文
posted @ 2018-12-17 10:40
守护式等待
阅读(100)
推荐(0)
摘要:
事务 事务四大特性(简称ACID) 原子性(Atomicity):事务中的全部操作在数据库中是不可分割的,要么全部完成,要么均不执行 一致性(Consistency):几个并行执行的事务,其执行结果必须与按某一顺序串行执行的结果相一致 隔离性(Isolation):事务的执行不受其他事务的干扰,事务
阅读全文
posted @ 2018-12-17 10:31
守护式等待
阅读(162)
推荐(0)
摘要:
索引 思考:在图书馆中是如何找到一本书的? 一般的应用系统对比数据库的读写比例在10:1左右,而且插入操作和更新操作很少出现性能问题,遇到最多的,也是最容易出问题的,还是一些复杂的查询操作,所以查询语句的优化显然是重中之重 当数据库中数据量很大时,查找数据会变得很慢 优化方案:索引 主键和唯一索引,
阅读全文
posted @ 2018-12-17 10:31
守护式等待
阅读(86)
推荐(0)
摘要:
视图 对于复杂的查询,在多个地方被使用,如果需求发生了改变,需要更改sql语句,则需要在多个地方进行修改,维护起来非常麻烦 解决:定义视图 视图本质就是对查询的封装 定义视图,建议以v_开头 例:创建视图,查询学生对应的成绩信息 查看视图:查看表会将所有的视图也列出来 删除视图 使用:视图的用途就是
阅读全文
posted @ 2018-12-17 10:30
守护式等待
阅读(139)
推荐(0)
摘要:
创建 语法如下 说明:delimiter用于设置分割符,默认为分号 在“sql语句”部分编写的语句需要以分号结尾,此时回车会直接执行,所以要创建存储过程前需要指定其它符号作为分割符,此处使用//,也可以使用其它字符 示例 要求:创建函数py_trim,用于删除字符串左右两侧的空格 step1:设置分
阅读全文
posted @ 2018-12-17 10:29
守护式等待
阅读(355)
推荐(0)
摘要:
创建 语法如下 说明:delimiter用于设置分割符,默认为分号 在“sql语句”部分编写的语句需要以分号结尾,此时回车会直接执行,所以要创建存储过程前需要指定其它符号作为分割符,此处使用//,也可以使用其它字符 示例 要求:创建查询过程,查询学生信息 step1:设置分割符 step2:创建存储
阅读全文
posted @ 2018-12-17 10:27
守护式等待
阅读(448)
推荐(0)
摘要:
条件 使用where子句对表中的数据筛选,结果为true的行会出现在结果集中 语法如下: where后面支持多种运算符,进行条件的处理 比较运算符 逻辑运算符 模糊查询 范围查询 空判断 比较运算符 逻辑运算符 模糊查询 范围查询 空判断 比较运算符 等于= 大于> 大于等于>= 小于< 小于等于<
阅读全文
posted @ 2018-12-17 10:24
守护式等待
阅读(158)
推荐(0)
摘要:
字符串函数 查看字符的ascii码值ascii(str),str是空串时返回0 查看ascii码值对应的字符char(数字) 拼接字符串concat(str1,str2...) 包含字符个数length(str) 截取字符串 left(str,len)返回字符串str的左端len个字符 right(
阅读全文
posted @ 2018-12-17 10:22
守护式等待
阅读(281)
推荐(0)
摘要:
数据库 查看所有数据库 使用数据库 查看当前使用的数据库 创建数据库 删除数据库 数据表 查看当前数据库中所有表 查看表结构 创建表 auto_increment表示自动增长 修改表-添加字段 修改表-修改字段:重命名版 修改表-修改字段:不重命名版 修改表-删除字段 删除表 查看表的创建语句 查询
阅读全文
posted @ 2018-12-17 10:20
守护式等待
阅读(146)
推荐(0)
摘要:
1 协程 1.1协程的概念 协程,又称微线程,纤程。英文名Coroutine。一句话说明什么是线程:协程是一种用户态的轻量级线程。(其实并没有说明白~) 我觉得单说协程,比较抽象,如果对线程有一定了解的话,应该就比较好理解了。 那么这么来理解协程比较容易: 线程是系统级别的,它们是由操作系统调度;协
阅读全文
posted @ 2018-12-17 10:05
守护式等待
阅读(488)
推荐(0)
摘要:
import paramiko, threading import queue import pymysql class ThreadPool(object): def __init__(self, maxsize): self.maxsize = maxsize self._q = queue.Queue(self.maxsize) ...
阅读全文
posted @ 2018-12-17 10:01
守护式等待
阅读(222)
推荐(0)
摘要:
资源总是有限的,程序运行如果对同一个对象进行操作,则有可能造成资源的争用,甚至导致死锁 也可能导致读写混乱 锁提供如下方法: 1.Lock.acquire([blocking]) 2.Lock.release() 3.threading.Lock() 加载线程的锁对象,是一个基本的锁对象,一次只能一
阅读全文
posted @ 2018-12-17 09:59
守护式等待
阅读(3251)
推荐(0)
摘要:
多线程-共享全局变量 运行结果: 列表当做实参传递到线程中 运行结果: 总结: 在一个进程内的所有线程共享全局变量,能够在不适用其他方式的前提下完成多线程之间的数据共享(这点要比多进程要好) 缺点就是,线程是对全局变量随意遂改可能造成多线程之间对全局变量的混乱(即线程非安全)
阅读全文
posted @ 2018-12-17 09:54
守护式等待
阅读(576)
推荐(0)
摘要:
多线程-threading python的thread模块是比较底层的模块,python的threading模块是对thread做了一些包装的,可以更加方便的被使用 1. 使用threading模块 单线程执行 运行结果: 多线程执行 运行结果: 说明 2. 主线程会等待所有的子线程结束后才结束 3
阅读全文
posted @ 2018-12-17 09:53
守护式等待
阅读(316)
推荐(0)