Python是支持面向对象的,很多情况下使用面向对象编程会使得代码更加容易扩展,并且可维护性更高,但是如果你写的多了或者某一对象非常复杂了,其中的一些写法会相当相当繁琐,而且我们会经常碰到对象和JSON序列化及反序列化的问题,原生的Python转起来还是很费劲的。可能这么说大家会觉得有点抽象,那么这里举几个例子来感受一下。首先让我们定义一个对象吧,比如颜色。我们常用RGB三个原色来表示颜色,R、G、B分别代表红、绿、蓝三个颜色的数值,范围是0-255,也就
系统 2019-09-27 17:53:07 2116
前言学过Python数据分析的朋友都知道,在可视化的工具中,有很多优秀的三方库,比如matplotlib,seaborn,plotly,Boken,pyecharts等等。这些可视化库都有自己的特点,在实际应用中也广为大家使用。plotly、Boken等都是交互式的可视化工具,结合Jupyternotebook可以非常灵活方便地展现分析后的结果。虽然做出的效果非常的炫酷,比如plotly,但是每一次都需要写很长的代码,一是麻烦,二是不便于维护。我觉得在数据
系统 2019-09-27 17:52:48 2116
queue介绍queue是python中的标准库,俗称队列。在python中,多个线程之间的数据是共享的,多个线程进行数据交换的时候,不能够保证数据的安全性和一致性,所以当多个线程需要进行数据交换的时候,队列就出现了,队列可以完美解决线程间的数据交换,保证线程间数据的安全性和一致性。注意:在python2.x中,模块名为Queuequeue模块有三种队列及构造函数Pythonqueue模块的FIFO队列先进先出。queue.Queue(maxsize)LI
系统 2019-09-27 17:52:43 2116
由于工作的需求,需要用python做一个类似网络爬虫的采集器。虽然Python的urllib模块提供更加方便简洁操作,但是涉及到一些底层的需求,如手动设定User-Agent,Referer等,所以选择了直接用socket进行设计。当然,这样的话,需要对HTTP协议比较熟悉,HTTP协议这里就不做讲解了。整个python的代码如下:#!/usr/binenvpythonimportsockethost="www.baidu.com"se=socket.so
系统 2019-09-27 17:52:30 2116
importhashlibdef_verfy_ac(private_key,params):items=sorted(params.items(),key=lambdax:x[0])params_data=""foriinitems:params_data=params_data+i[0]+i[1]params_data=params_data+private_keysign=hashlib.sha1()sign.update(params_data.en
系统 2019-09-27 17:52:26 2116
目前,Python科学栈中的所有主要项目都同时支持Python3.x和Python2.7,不过,这种情况很快即将结束。去年11月,Numpy团队的一份声明引发了数据科学社区的关注:这一科学计算库即将放弃对于Python2.7的支持,全面转向Python3。Numpy并不是唯一宣称即将放弃Python旧版本支持的工具,pandas与Jupyternotebook等很多产品也在即将放弃支持的名单之中。对于数据科学开发者而言,如何将已有项目从Python2转向P
系统 2019-09-27 17:52:25 2116
python是一门灵活的语言,也可以说python是一门胶水语言,顾名思义,就是其可以导入各类的包,python的包可以说是所有语言中最多的。当然导入包大部分是为了更快捷,更方便,效率更高。对于刚入门的python爱好者来说最初接触的应该是import直接导入包的方式,例如importtime,就是导入了python的time包,这个包中的方法可以处理大部分我们项目中遇到的关于时间的问题。下面我会详细介绍几种导入包的方式(在开发过程中绝对够用)以及怎样把其
系统 2019-09-27 17:52:19 2116
python中eval函数的用法十分的灵活,这里主要介绍一下它的原理和一些使用的场合。下面是从python的官方文档中的解释:Theargumentsareastringandoptionalglobalsandlocals.Ifprovided,globalsmustbeadictionary.Ifprovided,localscanbeanymappingobject.Theexpressionargumentisparsedandevaluateda
系统 2019-09-27 17:52:12 2116
个人想到的解决方法有两种,一种是.replace('old','new')第一个参数是需要换掉的内容比如空格,第二个是替换成的内容,可以把字符串中的空格全部替换掉.第二种方法是像这样str_1_data='abc'str_2_list=str_1_data.split()str_1=''foriinrange(len(str_2_list)):#这里可以直接用str_1.join(str2_list)str_1+=str_2_list[i]print(st
系统 2019-09-27 17:51:45 2116
1准备工作1.1环境搭建1.1.1安装python3.6python安装官网1.1.2安装django2.2pipinstalldjango(==2.2.0)//不加版本默认安装最新版1.1.3安装pycharm(社区版,官网下载安装即可)在安装完成后要配置好需要的第三方库:(pip下载,推荐在pycharm下也配置虚拟环境)Django2.2连接mysql需要的库:PyMySQL,mysql,mysqlclinet验证码用到的库:django-simpl
系统 2019-09-27 17:51:19 2116