- 博客(26)
- 收藏
- 关注
原创 Robot Framework创建资源文件及报错解决
一、新建资源文件 1.点击项目,右键,选择New Resource 2.输入资源名称,使用txt格式 3.创建完成后,选择该资源名称,右键,选择New User Keyword 4.输入当前关键字的名称 5.在该新建资源中引入第三方库Selenium2Library(显示为黑色正常,红色为引入错误) 6.编辑内容 多个参数之间用“ | ”隔开 二、新建资源引用 1.导入新建的资源文件 ...
2019-09-16 16:44:29
1169
原创 python中的spidev模块
一、介绍 spidev模块主要用于通过spidev linux内核驱动程序从用户空间与SPI设备连接。 二、安装 官网下载安装包 https://pypi.org/project/spidev/ tar –zxvf spidev-3.2.tar.gz cd spidev-3.2 sudo python3 setup.py install 三、使用 import spidev spi =...
2019-01-05 15:18:21
14082
1
原创 初识OpenVibe
一、什么是OpenVibe OpenVibe是一个致力于设计,测试和使用脑机接口的软件平台,是一种用于实时神经科学的软件(用于脑信号的实时处理),实时获取、过滤、处理、分类 和可视化大脑信号。应用领域主要是医疗(帮助残疾人,实时生物反馈,神经反馈,实时诊断),多媒体(虚拟现实,视频游戏),机器人以及与脑机接口和实际相关的所有其他应用领域。 ...
2019-01-02 23:04:06
5172
3
转载 Python 反射机制
剖析python语言中 “反射” 机制的本质和实际应用场景 一. 前言 def s1(): print("s1是这个函数的名字!") s = "s1" print("%s是个字符串" % s) 在上面的代码中,我们必须区分两个概念,f1和“f1"。前者是函数f1的函数名,后者只是一个叫”f1“的字符串,两者是不同的事
2018-12-08 15:51:03
521
原创 Python 单元测试
Python 单元测试–unittest模块 在了解单元测试之前,我们先看一点高大上的东西—TDD(测试驱动开发): TDD是敏捷开发中的一项核心实践和技术,也是一种设计方法论TDD的原理是:在明确要开发某个功能后,在开发功能代码之前,先编写测试代码,然后编写功能代码,并用测试代码进行验证,如此循环直到完成全部功能的开发. TDD有广义与狭义之分,经常说的是狭义的TDD,叫做UTDD.广义的TD...
2018-12-06 21:31:00
347
原创 Linux下安装nginx步骤
官网下载安装包 nginx下载地址 选择对应安装包下载(nginx-1.14.1) 解压 tar -zxvf nginx-1.14.1.tar.gz 进入解压后的文件 cd nginx-1.14.1 执行: ./configure 如果没有报错: make make install 报错如: 执行: sudo apt-get install libpcre3 li...
2018-12-03 13:50:49
207
原创 Python 栈 四则运算
Python 栈 四则运算 首先了解一下栈: 栈是限定仅在表尾进行插入和删除操作的线性表。允许插入与删除的一段叫做栈顶,另一端 叫做栈底,不含任何数据元素的栈称为空栈。栈又称为后进先出(Last In First Out)的线性 表,简称LIFO结构。 在Python中,可以用列表来实现栈: lt = [3] #相当于压栈 lt.append(4) print(lt) >>>...
2018-12-02 16:33:30
3641
转载 Python 杨辉三角
Python 杨辉三角 首先附上我们需要求得的杨辉三角: [1] [1, 1] [1, 2, 1] [1, 3, 3, 1] [1, 4, 6, 4, 1] [1, 5, 10, 10, 5, 1] [1, 6, 15, 20, 15, 6, 1] [1, 7, 21, 35, 35, 21, 7, 1] [1, 8, 28, 56, 70, 56, 28, 8, ...
2018-11-27 18:12:12
1461
原创 Python 生成器\迭代器
Python 生成器\迭代器 一、什么是生成器? 通过列表生成式,我们可以直接创建一个列表,但是,受到内存限制,列表容量肯定是有限的,而且创建一个包含100万个元素的列表,不仅占用很大的存储空间,如果我们仅仅需要访问前面几个元素,那后面绝大多数元素占用的空间都白白浪费了。 所以,如果列表元素可以按照某种算法推算出来,那我们是否可以在循环的过程中不断推算出后续的元素呢?这样就不必创建完整的list...
2018-11-27 13:45:00
239
原创 Python 链表的实现
Python 链表 首先,我们先来连接一下链表: 在线性表中,有一种叫做顺序存储结构,但是在插入和删除的时候需要移动大量的元素,不是很方便,为了解决这个问题,就有了链式存储结构: 为了表示每个数据元素a与其直接后继数据元素b之间的逻辑关系,对数据元素a来说,除了存储其本身的信息之外,还需存储一个指示其后继的信息(即直接后继的存储位置)。我们把存储数据元素信息的域称为数据域,把存储直接后继位置的域称...
2018-11-26 22:29:30
307
原创 Scrapy 下载中间件与爬虫中间件
Scrapy 下载、爬虫中间件 在上一篇文章中详细的描述了爬虫框架Scrapy的工作流程,在其中我们会发现包含有两个中间件: 一、下载中间件(DowmloaderMiddleware) 下载中间件处理的过程主要在调度器经engine发送request请求的时候以及网页将response结果返回给spiders的时候,所以-----下载中间件是介于scrapy的request/response处理...
2018-11-26 11:24:11
3730
原创 Python爬虫框架Scrapy工作流程
Scrapy工作流程图 具体流程步骤: 爬虫(spiders)将需要发送请求的url(request)交给引擎(engin); 引擎(engine)将request对象交给调度器(scheduler); 调度器(scheduler)经过(排队、入队等)处理后,重新把request对象交给引擎(engine); 引擎将request对象交给下载器(downloader),中间可能会经过中间件(d...
2018-11-24 20:33:59
730
转载 TCP 和 UDP协议
TCP/IP协议是个协议簇 分为三个层次:网络层、传输层和应用层 网络层中有: IP协议、ICMP协议、RARP协议和BOOTP协议; 传输层中有:TCP协议和UDP协议; 应用层中有:FTP、HTTP、TELNET、SMTP、DNS等协议. HTTP协议: 建立在请求/响应模型上.首先由客户建立一条与服务器的TCP链接,并发送一个请求到服务器,请求中包含请求方法\URI\协议版本以及相关的MI...
2018-11-23 21:10:48
230
转载 HTTP协议与HTTPS协议
Http : 是互联网应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准(TCP),用于从WWW服务器传输超文本到本地浏览器的传输协议,可以使浏览器更加高效,是网络传输减少. 以明文内容发送内容,不提供任何形式的数据加密. Https: 为了解决Http协议这一缺陷,就需要使用另一种协议------安全套接字层超文本传输协议Https,在Http的基础上加入了SSL协议,SSL依靠...
2018-11-23 20:05:19
409
原创 Python 单例模式
Python 单例模式 了解Python这么久,一直没有好好去了解一下到底什么是单例模式,今天便去深入探究一下… 单例模式,其实是一种非常简单的设计模式,简单到其实一句话就可以解释:–确保某个类只有一个实例存在。 那么,在什么情况下需要用到单例模式呢?我们就来了解一下单例模式的应用场景: Python的logger就是一个单例模式,用以日志记录; Windows的资源管理器是一个单例模式; ...
2018-11-22 20:54:30
372
原创 Python 全局解释器锁(GIL) 线程切换
全局解释器锁(GIL Global Interpreter Lock ) GIL锁与python语言并没有什么关系,仅仅是用C语言编写的cpython解释器中存在GIL锁。 在同一个进程中只要有一个线程获取了全局解释器(cpu)的使用权限,那么其他线程就必须等待该线程使用结束后才能继续使用 好处: 1.避免了大量的加锁减锁 2. 使数据更加安全 缺点: 多核处理器退化成单核处理器,只能并发不能并行...
2018-11-22 14:27:48
333
原创 机器学习小白之过拟合与欠拟合
小白之过拟合与欠拟合 过拟合: 通俗一点来说过拟合就是模型把数据学习的太彻底,以至于把噪声数据的特征也学习到了,导致模型在训练时表现得非常好,但是在测试集上表现得不好,模型的泛化能力太差。(泛化:机器学习模型在遇到没有在训练集中遇见过的数据时的表现) 解决方法: 1.重新清洗数据,导致过拟合的一个原因有可能是数据不纯导致; 2.增大数据训练量,导致过拟合的原因还有用于训练的数据量太小导致的,训练...
2018-11-21 08:55:45
346
1
原创 Nginx介绍以及与uWSGI的工作流程
Nginx是一个轻量级的HTTP服务器,完全由C语言开发,是一个高性能的HTTP和反向代理服务器,同时也是一个IMAP/POP3/SMTP代理服务器。 Nginx的优点: 处理静态文件和索引文件的效果非常高。 Nginx专为性能优化而开发,设计非常注重效率,支持内核Poll模型,能经受高负载考验,能支持高达50000个并发连接并占用很少的内存空间。 具有很高的稳定性。当遇到访问峰值时,可能会导致...
2018-11-20 18:23:15
784
原创 WSGI+uWSGI+uwsgi详解
WSGI+uWSGI+uwsgi详解 WSGI(Web Server Gateway Interface)服务器网关接口 只是一种协议,要实现WSGI协议,必须同时实现Web服务器和Web应用,因为它描述的是Web服务器如何与Web应用间进行通信。当前运行在WSGI协议之上的Web框架有Flask、Django、Bottle、Torando. 主要包括server和application两部分...
2018-11-20 09:09:00
1085
原创 Linux+vim+mysql 命令
Linux命令 1.查看帮助文档 ls --help man 2.查看文件信息 ls -a(显示所有) - l(列表形式显示所有文件详细信息) -h(人性化) 3.重定向命令 如:ls > test.txt(不存在创建,存在覆盖) 4.分屏 more 5.管道 | 6.清屏 clear 7.切换目录 cd 8.显示当前路径 pwd 9.创建目录 ...
2018-11-19 19:11:06
1024
原创 Python 之 深浅拷贝
Python 深浅拷贝 在了解Python的深浅拷贝之前,需要先了解一下Python内存中变量的存储情况。 对于Python而言,Python的一切变量都是对象,变量的存储采用了引用的方式,存储的只是变量的值的内存地址,而不是变量值本身。 变量赋值 #变量赋值,存储的内存地址相同 并没有开辟新的内存只是增加了引用,所以当a改变时b也改变 a = [1,2,3,[4,5]] b = a pri...
2018-11-17 15:07:10
168
原创 Django 访问流程
Django 访问流程 访问流程 用户通过浏览器发送请求,到达WSGI服务器,使用其handler方法来处理HTTP请求(其实最终是调用wsgiref.handlers.BaseHandler中的run方法处理); 请求到达request中间件,中间件对request请求进行预处理或者直接返回response; 如果没有response,到达url进行匹配,找到相应的视图函数; 视图函数...
2018-11-14 20:59:47
826
原创 Python 内存管理机制 引用计数 垃圾回收 内存池
Python内存管理机制: 引用计数 垃圾回收 内存池 引用计数 当Python对象被引用时其引用计数+1,当其不再被一个变量引用时计数-1,引用计数=0时对象被删除 python里万物皆对象,核心就是一个结构体 : PyObject 在这里面 ob_refcnt 就是引用计数 优点: 简单 实时性,处理回收内存的时间分摊到了平时 缺点: 维护引用计数消耗资...
2018-11-14 20:20:22
707
原创 邮件发送之星座运势
邮件发送之星座每日运势 这篇文章写的只是进行了简单的星座每日运势爬取和邮件的简单发送,并没有实现每日定时推送,适合python初学者. 一 、星座运势爬取 这部分只需要会简单的爬虫知识就可以轻松搞定(使用requests和xpath) import requests from lxml import etree url = '爬取网站url' headers = { '请求...
2018-11-10 17:59:24
786
原创 Python之异常及异常处理
什么是异常? 在python中,万物皆对象.所以异常在python中也是对象.当程序无法正常执行 时,就会抛出一个异常,程序就会执行回溯(Traceback)来终止程序.但有时候这并 不是我们想要看到的,程序需要继续执行下去,这时候就需要对异常进行处理. 异常处理(try/except) 捕捉异常可以使用try/except语句。 try/except语句用来检测try语句块中的错误,从而让exc...
2018-11-07 09:37:44
315
原创 numpy之dot 函数
numpy之dot 函数 官方文档地址:(https://docs.scipy.org/doc/numpy/reference/generated/numpy.dot.html#numpy.dot) 对于一维数组(两个数组的内积): #数据类型为array import numpy as np d = np.arange(1,4) array([1, 2, 3]) e = d[::...
2018-11-06 09:59:41
1383
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅