python
ymczzzz
这个作者很懒,什么都没留下…
展开
-
Python之异常及异常处理
什么是异常?在python中,万物皆对象.所以异常在python中也是对象.当程序无法正常执行时,就会抛出一个异常,程序就会执行回溯(Traceback)来终止程序.但有时候这并不是我们想要看到的,程序需要继续执行下去,这时候就需要对异常进行处理.异常处理(try/except)捕捉异常可以使用try/except语句。try/except语句用来检测try语句块中的错误,从而让exc...原创 2018-11-07 09:37:44 · 201 阅读 · 0 评论 -
Python 单元测试
Python 单元测试–unittest模块在了解单元测试之前,我们先看一点高大上的东西—TDD(测试驱动开发):TDD是敏捷开发中的一项核心实践和技术,也是一种设计方法论TDD的原理是:在明确要开发某个功能后,在开发功能代码之前,先编写测试代码,然后编写功能代码,并用测试代码进行验证,如此循环直到完成全部功能的开发.TDD有广义与狭义之分,经常说的是狭义的TDD,叫做UTDD.广义的TD...原创 2018-12-06 21:31:00 · 196 阅读 · 1 评论 -
Python 反射机制
剖析python语言中 “反射” 机制的本质和实际应用场景一. 前言def s1(): print("s1是这个函数的名字!") s = "s1"print("%s是个字符串" % s)在上面的代码中,我们必须区分两个概念,f1和“f1"。前者是函数f1的函数名,后者只是一个叫”f1“的字符串,两者是不同的事转载 2018-12-08 15:51:03 · 379 阅读 · 0 评论 -
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 · 1287 阅读 · 0 评论 -
Python 生成器\迭代器
Python 生成器\迭代器一、什么是生成器?通过列表生成式,我们可以直接创建一个列表,但是,受到内存限制,列表容量肯定是有限的,而且创建一个包含100万个元素的列表,不仅占用很大的存储空间,如果我们仅仅需要访问前面几个元素,那后面绝大多数元素占用的空间都白白浪费了。所以,如果列表元素可以按照某种算法推算出来,那我们是否可以在循环的过程中不断推算出后续的元素呢?这样就不必创建完整的list...原创 2018-11-27 13:45:00 · 143 阅读 · 1 评论 -
Python 栈 四则运算
Python 栈 四则运算首先了解一下栈: 栈是限定仅在表尾进行插入和删除操作的线性表。允许插入与删除的一段叫做栈顶,另一端叫做栈底,不含任何数据元素的栈称为空栈。栈又称为后进先出(Last In First Out)的线性表,简称LIFO结构。在Python中,可以用列表来实现栈:lt = [3]#相当于压栈lt.append(4)print(lt)>>>...原创 2018-12-02 16:33:30 · 3322 阅读 · 0 评论 -
Python 链表的实现
Python 链表首先,我们先来连接一下链表:在线性表中,有一种叫做顺序存储结构,但是在插入和删除的时候需要移动大量的元素,不是很方便,为了解决这个问题,就有了链式存储结构:为了表示每个数据元素a与其直接后继数据元素b之间的逻辑关系,对数据元素a来说,除了存储其本身的信息之外,还需存储一个指示其后继的信息(即直接后继的存储位置)。我们把存储数据元素信息的域称为数据域,把存储直接后继位置的域称...原创 2018-11-26 22:29:30 · 202 阅读 · 0 评论 -
Python爬虫框架Scrapy工作流程
Scrapy工作流程图具体流程步骤:爬虫(spiders)将需要发送请求的url(request)交给引擎(engin);引擎(engine)将request对象交给调度器(scheduler);调度器(scheduler)经过(排队、入队等)处理后,重新把request对象交给引擎(engine);引擎将request对象交给下载器(downloader),中间可能会经过中间件(d...原创 2018-11-24 20:33:59 · 580 阅读 · 1 评论 -
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 · 956 阅读 · 0 评论 -
Python 之 深浅拷贝
Python 深浅拷贝在了解Python的深浅拷贝之前,需要先了解一下Python内存中变量的存储情况。对于Python而言,Python的一切变量都是对象,变量的存储采用了引用的方式,存储的只是变量的值的内存地址,而不是变量值本身。变量赋值#变量赋值,存储的内存地址相同 并没有开辟新的内存只是增加了引用,所以当a改变时b也改变a = [1,2,3,[4,5]]b = apri...原创 2018-11-17 15:07:10 · 100 阅读 · 0 评论 -
Python 单例模式
Python 单例模式了解Python这么久,一直没有好好去了解一下到底什么是单例模式,今天便去深入探究一下…单例模式,其实是一种非常简单的设计模式,简单到其实一句话就可以解释:–确保某个类只有一个实例存在。那么,在什么情况下需要用到单例模式呢?我们就来了解一下单例模式的应用场景:Python的logger就是一个单例模式,用以日志记录;Windows的资源管理器是一个单例模式;...原创 2018-11-22 20:54:30 · 296 阅读 · 0 评论 -
Python 全局解释器锁(GIL) 线程切换
全局解释器锁(GIL Global Interpreter Lock )GIL锁与python语言并没有什么关系,仅仅是用C语言编写的cpython解释器中存在GIL锁。在同一个进程中只要有一个线程获取了全局解释器(cpu)的使用权限,那么其他线程就必须等待该线程使用结束后才能继续使用好处:1.避免了大量的加锁减锁2. 使数据更加安全缺点:多核处理器退化成单核处理器,只能并发不能并行...原创 2018-11-22 14:27:48 · 217 阅读 · 0 评论 -
机器学习小白之过拟合与欠拟合
小白之过拟合与欠拟合过拟合: 通俗一点来说过拟合就是模型把数据学习的太彻底,以至于把噪声数据的特征也学习到了,导致模型在训练时表现得非常好,但是在测试集上表现得不好,模型的泛化能力太差。(泛化:机器学习模型在遇到没有在训练集中遇见过的数据时的表现)解决方法:1.重新清洗数据,导致过拟合的一个原因有可能是数据不纯导致;2.增大数据训练量,导致过拟合的原因还有用于训练的数据量太小导致的,训练...原创 2018-11-21 08:55:45 · 244 阅读 · 3 评论 -
Nginx介绍以及与uWSGI的工作流程
Nginx是一个轻量级的HTTP服务器,完全由C语言开发,是一个高性能的HTTP和反向代理服务器,同时也是一个IMAP/POP3/SMTP代理服务器。Nginx的优点:处理静态文件和索引文件的效果非常高。Nginx专为性能优化而开发,设计非常注重效率,支持内核Poll模型,能经受高负载考验,能支持高达50000个并发连接并占用很少的内存空间。具有很高的稳定性。当遇到访问峰值时,可能会导致...原创 2018-11-20 18:23:15 · 619 阅读 · 0 评论 -
Python 内存管理机制 引用计数 垃圾回收 内存池
Python内存管理机制: 引用计数 垃圾回收 内存池引用计数当Python对象被引用时其引用计数+1,当其不再被一个变量引用时计数-1,引用计数=0时对象被删除python里万物皆对象,核心就是一个结构体 : PyObject在这里面 ob_refcnt 就是引用计数优点:简单 实时性,处理回收内存的时间分摊到了平时缺点:维护引用计数消耗资...原创 2018-11-14 20:20:22 · 565 阅读 · 0 评论 -
邮件发送之星座运势
邮件发送之星座每日运势这篇文章写的只是进行了简单的星座每日运势爬取和邮件的简单发送,并没有实现每日定时推送,适合python初学者.一 、星座运势爬取这部分只需要会简单的爬虫知识就可以轻松搞定(使用requests和xpath)import requestsfrom lxml import etreeurl = '爬取网站url' headers = { '请求...原创 2018-11-10 17:59:24 · 515 阅读 · 1 评论 -
python中的spidev模块
一、介绍spidev模块主要用于通过spidev linux内核驱动程序从用户空间与SPI设备连接。二、安装官网下载安装包 https://pypi.org/project/spidev/tar –zxvf spidev-3.2.tar.gzcd spidev-3.2sudo python3 setup.py install三、使用import spidevspi =...原创 2019-01-05 15:18:21 · 12927 阅读 · 1 评论