Python开发实战
文章平均质量分 65
主要基于Python3:
设计模式、面试分析、系统编程、网络编程、算法、编程风格、实用库、Web编程(Django、Flask)、
ChenVast
有梦想,敢拼博,执着的走属于自己的路。无惧一切,勇往直前,做自己。成为一个伟大的人,改变世界。
Python软件基金会(PSF)成员,
国际数据管理协会(DAMA)会员
展开
-
【Python】python的四种高性能数据类型,助你优化代码、简洁任务
Python 的最大优势之一就是它有各种各样的模块和软件包可供选择。这些模块和包将 Python 的功能扩展到了许多流行领域,包括机器学习、数据科学、Web 开发和前端等。其中表现最好的一个就是 Python 内置的 collections 模块了。一般而言,Python 中的 collections 模块是用于存储列表、字典、元组以及集等数据集合的容器。这些容器嵌入在 Python 中...翻译 2019-11-15 15:48:32 · 503 阅读 · 0 评论 -
【Matplotlib】Matplotlib绘图实战
这个Matplotlib教程将指导您掌握Python数据可视化的基础知识:图解,pyplot和pylab等的解剖,等等人类是非常视觉的生物:当我们看到可视化的东西时,我们会更好地理解事物。然而,展示分析,结果或见解的步骤可能是一个瓶颈:您可能甚至不知道从哪里开始,或者您可能已经考虑了正确的格式,但随后会出现如下问题:“这是否正确显示我想带给我的观众?“肯定会出现在你的脑海里。当您使用Pyt...翻译 2018-05-19 20:06:35 · 2430 阅读 · 0 评论 -
【Matplotlib】Matplotlib 查看3D体积 实战
在这篇Python教程中,您将使用Matplotlib的事件处理程序API来显示MRI数据集的切片。 大多数人都熟悉用普通相机拍摄的图像数据(这些通常在科学文献中被称为“自然图像”),而且还用于显微镜或望远镜等专业仪器。在Python中处理图像时,最常见的显示方式是使用Python最流行的绘图库Matplotlib的imshow函数。在本教程中,我们将向您展示如何扩展此功能以显示3D体...翻译 2018-05-19 20:20:02 · 1724 阅读 · 1 评论 -
【数据可视化】Pandas画直方图
pandas.DataFrame.hist 使用函数:DataFrame.hist(column=None, by=None, grid=True, xlabelsize=None, xrot=None, ylabelsize=None, yrot=None, ax=None, sharex=False, sharey=False, figsize=None, layout=None,...原创 2018-08-10 16:16:43 · 43703 阅读 · 0 评论 -
【数据可视化】Pandas画散点图
pandas.DataFrame.plot.scatter 使用函数:DataFrame.plot.scatter(x, y, s=None, c=None, **kwds)功能:创建具有不同标记点大小和颜色的散点图。 每个点的坐标由两个数据帧列定义,实心圆用于表示每个点。这种图可用于查看两个变量之间的复杂相关性。点可以是例如自然2D坐标,例如地图中的经度和纬度,或者通常可以是...原创 2018-08-13 16:38:00 · 47058 阅读 · 0 评论 -
【数据可视化】Pandas画饼图
pandas.DataFrame.plot.pie使用函数:DataFrame.plot.pie(y=None, **kwds)功能:生成饼图。 饼图是一个列中数字数据的比例表示。这个函数封装了指定栏目的matplotlib.pyplot.pie()。如果没有传递列引用,而subplots=True则为每个数值列独立地绘制饼图。Parameters: y : in...原创 2018-08-13 16:50:32 · 28383 阅读 · 1 评论 -
【可视化】Python使用Seaborn进行可视化
如何快速创建强大的探索性数据分析可视化一旦你有了一个很好的清理数据集,下一步就是探索性数据分析(EDA)。EDA是确定数据可以告诉我们什么的过程,我们使用EDA来查找模式,关系或异常,以便为我们的后续分析提供信息。虽然在EDA中使用的方法几乎绝大多数,但最有效的启动工具之一是对图(也称为散点图矩阵)。一对plot让我们看到了两个变量之间的单变量和关系的两个分布。配对图是识别后续分析趋势的好方法...翻译 2018-08-14 09:41:05 · 1618 阅读 · 0 评论 -
【可视化】pandas与matplotlib绘制环形饼图
导入相关库import pandas as pdimport matplotlib.pyplot as plt% matplotlib inline 生产测试数据data = pd.DataFrame([[20,50,10,15],[30,30,20,40]],columns=['A','B','C','D'])数据: A B C D ...原创 2018-08-21 10:44:27 · 5248 阅读 · 0 评论 -
【可视化】使用matplotlib进行区域填充
效果图 matplotlib.pyplot.fill_between函数:matplotlib.pyplot.fill_between(x, y1, y2=0, where=None, interpolate=False, step=None, hold=None, data=None, **kwargs)效果:在两条水平曲线之间填充区域。曲线由点(x,y1)和(x...原创 2018-08-21 11:44:59 · 6813 阅读 · 0 评论 -
【可视化】Matplotlib V3.0版本上线了,新功能介绍
改进了默认的后端选择默认后端不再必须设置为构建过程的一部分。相反,在运行时,内置后端按顺序尝试,直到其中一个导入。无头linux服务器(由未定义的DISPLAY env标识)不会选择GUI后端。 循环色图添加了两个名为“twilight”和“twilight_shifted”的新色图。这些色彩图以相同的颜色开始和结束,并且具有两个对称的半部,具有相同的亮度,但是颜色发散。...翻译 2018-09-25 10:07:19 · 1111 阅读 · 0 评论 -
【可视化】Matplotlib类型图像的可选颜色
原创 2018-09-29 15:38:05 · 900 阅读 · 0 评论 -
【程序设计】设计模式与设计原则
设计模式与设计原则,基本符合规则与原则的关系: 设计模式是一个个具体问题的解决方案,设计模式是程序设计方法的形。 设计原则反映了这些设计模式的指导思想,设计原则是程序设计方法的神。设计原则可衍生出的设计模式,任何一种针对特定业务场景中的解决方法,虽然找不到对应的设计模式与之匹配,但若符合设计原则,也可以认为是一种全新的设计模式。 设计原则:单一职责原则: 单...转载 2018-01-25 16:17:52 · 851 阅读 · 0 评论 -
【pandas】pandas每次使用append追加行时都生成一个Unnamed列
pandas每次使用append追加行时多出一个Unnamed列!解决办法:追加行数据前,read_csv函数读取数据时, 增加 index_col 参数,指定哪一行为索引行。如:test = pd.read_csv(filename,index_col=0)...原创 2018-04-18 20:26:32 · 6406 阅读 · 2 评论 -
【图像算法】ImageHash(Python 图像哈希库)
用Python编写的图像哈希库。ImageHash支持:平均哈希(aHash)感知哈希(pHash)差异哈希(dHash)小波散列(wHash)要求基于PIL,numpy和scipy.fftpack(用于pHash)通过pypi轻松安装。基本用法from PIL import Imageimport imagehashhash = imagehash.average_hash(Image.op...原创 2018-04-30 21:04:15 · 8280 阅读 · 2 评论 -
【Python】使用31条规则编写高质量且美丽的Python代码
Raymond Hettinger在pycon US 2013 视频,幻灯片上的讲话。代码示例和直接引用都来自Raymond的演讲。我在这里复制它们是为了我自己的启发和希望别人会发现它们像我一样方便!原文:https://github.com/JeffPaine/beautiful_idiomatic_python 基础1、循环一系列数字for i in [0, 1, 2...翻译 2018-08-09 16:04:26 · 2551 阅读 · 0 评论 -
【python】google的经纬度定位查询API
功能:根据经纬度,定位相应位置。使用google 地图 API,每日有限量使用。from urllib.request import urlopenfrom bs4 import BeautifulSoupdef query(lat,loc): url = "http://maps.google.cn/maps/api/geocode/xml?latlng=%.6f,%.6...原创 2018-08-14 16:53:37 · 5757 阅读 · 0 评论 -
【Python】面向对象软件设计简述(OOP)
通过实施角色扮演游戏的课程来演示目录介绍对象类型1.实体对象2.控制对象3.边界对象奖励:值对象关键设计原则抽象化封装分解泛化组成批判性思维免责声明关注的凝聚,耦合和分离凝聚耦合关注点分离结束语概要进一步阅读 介绍大多数现代编程语言都支持并鼓励面向对象编程(OOP)。虽然最近我们似乎看到了一点点偏离...翻译 2018-09-17 11:41:55 · 1799 阅读 · 0 评论 -
【Python】编写更优秀的Python函数
在Python中,与大多数现代编程语言一样,该函数是抽象和封装的主要方法。作为开发人员,您可能已经编写了数百个函数。但并非所有函数都是平等的。编写“坏”函数会直接影响代码的可读性和可维护性。那么,什么是“坏”函数,更重要的是什么使“好”函数?目录回顾好函数的关键命名单一功能文档注释返回值长度幂等性和函数纯度为什么幂等性很重要?什么是“纯粹”函数?总结...翻译 2018-10-15 14:51:59 · 447 阅读 · 0 评论 -
【Python】python字节码
Python如何工作Python经常被描述为一种解释型语言 - 当程序运行时,你的源代码被翻译成本地CPU指令 - 但这只是部分正确的。与许多解释型语言一样,Python实际上将源代码编译为虚拟机的一组指令,Python解释器是该虚拟机的一个实现。这种中间格式被称为“字节码”。因此,.pycPython留下的文件不仅仅是源代码的一些“更快”或“优化”版本; 它们是在您的程序运行时将由Python的...翻译 2018-05-10 10:43:04 · 1758 阅读 · 0 评论 -
【Python】python 3.X 使用 百度/有道 翻译API进行翻译
百度import urllibimport randomimport hashlibfrom urllib.request import urlopendef baidu_translate(text,fromLang='en',toLang='zh'): appid = 'XXXXX' secretKey = 'XXXXXX' httpClient = ...原创 2018-08-02 09:11:40 · 1885 阅读 · 0 评论 -
【数据结构】Dict(字典)和HashMap原理区别
Python内部很地方都使用着dict这种结构,在对象属性__dict__就是一个字典,所以对其效率要求很高。dict采用了哈希表,最低能在 O(1)时间内完成搜索。同样的java的HashMap也是采用了哈希表实现,不同是dict在发生哈希冲突的时候采用了开放寻址法,而HashMap采用了链接法。开放寻址法优点记录更容易进行序列化(serialize)操作 如果记录总...转载 2018-08-06 11:26:57 · 11022 阅读 · 2 评论 -
【面试】Python面试题库
第一部分 Python基础篇(80题)为什么学习Python? 通过什么途径学习的Python? Python和Java、PHP、C、C#、C++等其他语言的对比? 简述解释型和编译型编程语言? Python解释器种类以及特点? 位和字节的关系? b、B、KB、MB、GB 的关系? 请至少列举5个 PEP8 规范(越多越好)。 通过代码实现如下转换: 二进制转换成十进制:v ...原创 2018-08-06 11:32:45 · 1648 阅读 · 0 评论 -
【程序设计】设计模式
设计模式它不限于一种特定的语言,它是一种解决问题的思想和方法。设计模式是面对各种问题进行提炼和抽象而形成的解决方案。考虑了封装性,复用性,效率,可修改,可移植等各种因素的高度总结。遵循设计模式而设计的代码结构,尽可能减少模块间的不必要依赖设计模式对需求变更与代码重用的考虑,可以被作为软件设计的参考设计模式基本上本着“高内聚,低耦合”的原则,遵循设计模式而设计转载 2018-01-27 13:13:30 · 772 阅读 · 0 评论 -
【程序设计】Python的单例模式
单例模式是指:保证一个类仅有一个实例,并提供一个访问它的全局访问点。单例模式的优点:1、由于单例模式要求在全局内只有一个实例,因而可以节省比较多的内存空间;2、全局只有一个接入点,可以更好地进行数据同步控制,避免多重占用;3、单例可长驻内存,减少系统开销。单例模式的应用举例:1、生成全局惟一的序列号;2、访问全局复用的转载 2018-01-27 13:22:28 · 768 阅读 · 0 评论 -
【程序设计】Python的工厂模式
工厂类模式:工厂模式、简单工厂模式、抽象工厂模式工厂模式的定义如下:定义一个用于创建对象的接口,让子类决定实例化哪个类。工厂方法使一个类的实例化延迟到其子类。产品类定义产品的公共属性和接口,工厂类定义产品实例化的“方式”。工厂在使用前必须实例化。省去了将工厂实例化的过程。这种模式就叫做简单工厂模式。优点:1、工厂模式巨有非常好的封装性,代码结转载 2018-01-27 19:14:10 · 896 阅读 · 0 评论 -
【程序设计】Python的建造者模式
建造者模式的定义如下:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。建造者模式的作用,就是将“构建”和“表示”分离,以达到解耦的作用。优点:1、封装性好,用户可以不知道对象的内部构造和细节,就可以直接建造对象;2、系统扩展容易;3、建造者模式易于使用,非常灵活。在构造性的场景中很容易实现“流水线”;4、便于控制细节。使用场转载 2018-01-27 19:16:56 · 783 阅读 · 0 评论 -
【程序设计】Python的代理模式
代理模式是一种使用频率非常高的模式,在多个著名的开源软件和当前多个著名的互联网产品后台程序中都有所应用。代理模式定义如下:为某对象提供一个代理,以控制对此对象的访问和控制。代理模式在使用过程中,应尽量对抽象主题类进行代理,而尽量不要对加过修饰和方法的子类代理。优点:1、职责清晰:非常符合单一职责原则,主题对象实现真实业务逻辑,而非本职责的事务,交由代理完成;2、扩展转载 2018-01-27 19:19:47 · 858 阅读 · 0 评论 -
【程序设计】Python的原型模式
原型模式定义如下:用原型实例指定创建对象的种类,并且通过复制这些原型创建新的对象。进行clone操作后,新对象的构造函数没有被二次执行,新对象的内容是从内存里直接拷贝的。优点:1、性能极佳,直接拷贝比在内存里直接新建实例节省不少的资源;2、简化对象创建,同时避免了构造函数的约束,不受构造函数的限制直接复制对象,是优点,也有隐患,这一点还是需要多留意一些。使用场景:转载 2018-01-27 19:23:29 · 1037 阅读 · 0 评论 -
【程序设计】Python的装饰器模式
装饰器模式定义如下:动态地给一个对象添加一些额外的职责。在增加功能方面,装饰器模式比生成子类更为灵活。装饰器模式和上一节说到的代理模式非常相似装饰器模式就是代理模式的一个特殊应用,两者的共同点是都具有相同的接口,不同点是侧重对主题类的过程的控制,而装饰模式则侧重对类功能的加强或减弱。在Python中,AOP通过装饰器模式实现更为简洁和方便。AOP即Aspect Or转载 2018-01-27 19:26:14 · 793 阅读 · 0 评论 -
【程序设计】Python的门面模式
门面模式也叫外观模式,定义如下:要求一个子系统的外部与其内部的通信必须通过一个统一的对象进行。门面模式提供一个高层次的接口,使得子系统更易于使用。门面模式注重“统一的对象”,也就是提供一个访问子系统的接口。门面模式与之前说过的模板模式有类似的地方,都是对一些需要重复方法的封装。模板模式是对类本身的方法的封装,其被封装的方法也可以单独使用;而门转载 2018-01-27 19:29:30 · 811 阅读 · 0 评论 -
【程序设计】Python的适配器模式
适配器模式定义如下:将一个类的接口变换分类中翻译客户端的期待的另一种接口,使从而因原本不接口匹配而无法在一起工作的两个类能够在一起工作适配器模式装饰状语从句:有模式的一定相似性,都起包装的作用装饰模式的结果,是给一个对象增加了一些额外的职责,而适配器模式,则是将另一个对象进行了“伪装”。适配器可以认为是对现在业务的补偿式应用尽量不要在设计阶段使用适配转载 2018-01-27 19:32:34 · 941 阅读 · 0 评论 -
【程序设计】Python的组合模式
组合模式也叫作部分-模式整体将对象组合分类中翻译树形结构以表示“部分 ”和“整体 ”的层次结构,使得用户对单个对象和组合对象的使用具有一致性。优点:1,节点增加和减少是非常自由和方便的,这也是树形结构的一大特点;2,所有节点,不管是分支节点还是叶子结点,不管是调用一个结点,还是调用一个结点群,都是非常方便的。使用场景:1,维护部分转载 2018-01-29 10:54:00 · 910 阅读 · 0 评论 -
【程序设计】Python的桥梁模式
模式桥梁又叫桥接模式,定义如下:将抽象艺术与实现解耦(注意此处的抽象和实现,并非抽象类和实现类的那种关系,而是一种角色的关系,这里需要好好区分一下),可以使其独立变化。所谓的桥,就是抽象化角色的抽象类和实现化角色的抽象类之间的引用关系。优点:1,抽象角色与实现角色相分离,二者可以独立设计,不受约束;2,扩展性强:抽象角色和实现角色可以非常灵活地扩展。应用转载 2018-01-29 10:56:45 · 1156 阅读 · 0 评论 -
【程序设计】Python的享元模式
享元模式定义如下:使用共享对象支持大量细粒度对象。大量细粒度的对象的支持共享,可能会涉及这些对象的两类信息:内部状态信息和外部状态信息。内部状态信息就是可共享出来的信息,它们存储在享元对象内部,不会随着特定环境的改变而改变;外部状态信息就不可共享的信息了。享元模式中只包含内部状态信息,而不应该包含外部状态信息。优点:1、减少重复对象,大大节约了系统资源。转载 2018-01-29 11:06:23 · 751 阅读 · 0 评论 -
【程序设计】python的策略模式
策略模式定义如下:定义一组算法,将每个算法都封装起来,并使他们之间可互换。具体策略实现类中即可定义个性化的策略方式,且可以方便替换。比较一下桥接模式和策略模式,如果把策略模式的Context设计成抽象类和实现类的方式,那么策略模式和桥接模式就可以划等号了。桥接模式比策略模式多了对一种角色(抽象角色)的抽象。桥接模式解决抽象角色和实现角色都可以扩展的问题;而策略模式解转载 2018-01-29 11:11:01 · 811 阅读 · 0 评论 -
【程序设计】Python的中介者模式
中介者模式的定义为:用一个中介对象封装一系列的对象交互。中介者使各对象不需要显式地互相作用,从而使其耦合松散,并可以独立地改变它们之间的交互。优点:1、减少类与类的依赖,降低了类和类之间的耦合;2、容易扩展规模。应用场景:1、设计类图时,出现了网状结构时,可以考虑将类图设计成星型结构,这样就可以使用中介者模式了。如机场调度系统(多个跑道、飞机、指挥塔之间的调度)、路由系转载 2018-01-29 11:13:33 · 1042 阅读 · 0 评论 -
【程序设计】Python的命令模式
命令模式的定义为:将一个请求封装成一个对象,从而可以使用不同的请求将客户端参数化,对请求排队或者记录请求日志,可以提供命令的撤销和恢复功能。命令模式中通常涉及三类对象的抽象:Receiver,Command,Invoker(本例中的waiterSys)。只有一个Invoker的命令模式也可以抽象成一个类似的“星形网络”,但与之前介绍的中介者模式不同,单纯的命令模式更像是一个辐射状的转载 2018-01-29 11:16:17 · 837 阅读 · 0 评论 -
【程序设计】Python的责任链模式
责任链模式的定义如下:使多个对象都有机会处理请求,从而避免了请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有对象处理它为止。优点:1、将请求者与处理者分离,请求者并不知道请求是被哪个处理者所处理,易于扩展。应用场景:1、若一个请求可能由一个对请求有链式优先级的处理群所处理时,可以考虑责任链模式。除本例外,银行的客户请求处理系统也可以用转载 2018-01-29 11:18:48 · 885 阅读 · 0 评论 -
【程序设计】Python的观察者模式(发布-订阅模式)
观察者模式也叫发布-订阅模式,其定义如下:定义对象间一种一对多的依赖关系,使得当该对象状态改变时,所有依赖于它的对象都会得到通知,并被自动更新。观察者模式的通知方式可以通过直接调用等同步方式实现(如函数调用,HTTP接口调用等),也可以通过消息队列异步调用(同步调用指被观察者发布消息后,必须等所有观察者响应结束后才可以进行接下来的操作;异步调用指被观察者发布消息后,即可进行接下来的操作。)转载 2018-01-29 11:23:36 · 3386 阅读 · 0 评论 -
【程序设计】Python的模板模式
模板模式定义如下:定义一个操作中的算法的框架,而将一些步骤延迟到子类中,使得子类可以不改变一个算法的结构即可重新定义该算法的某些特定的步骤。子类实现的具体方法叫作基本方法,实现对基本方法高度的框架方法,叫作模板方法。优点:1、可变的部分可以充分扩展,不变的步骤可以充分封装;2、提取公共代码,减少冗余代码,便于维护;3、具体过程可以定制,总体流程方便掌控。使用场景转载 2018-01-29 11:25:59 · 1760 阅读 · 0 评论