这是《python基础教程》后面的实践,照着写写,一方面是来熟悉python的代码方式,另一方面是练习使用python中的基本的以及非基本的语法,做到熟能生巧。这个项目一开始比较简单,不过重构之后就有些复杂了,但是更灵活了。按照书上所说,重构之后的程序,分为四个模块:处理程序模块,过滤器模块,规则(其实应该是处理规则),语法分析器。先来说处理程序模块,这个模块的作用有两个,一个是提供那些固定的html标记的输出(每一个标记都有start和end),另一个是
系统 2019-09-27 17:56:47 2016
1.numpy的导入以及查看版本>>>importnumpyasnp>>>print(np.__version__)1.15.42.创建一维(或多维)数组#通过list初始化来创建>>>np.array([1,2,3,4,5])array([1,2,3,4,5])#通过arange方法生成>>>np.arange(10)array([0,1,2,3,4,5,6,7,8,9])#指定创建范围和步长>>>np.arange(3,10,2)array([3,5,
系统 2019-09-27 17:54:33 2016
Python产生一个数值范围内的不重复的随机数,可以使用random模块中的random.sample函数,其用法如下:importrandomrandom.sample(population,k)函数从序列或集合population中返回一个长度为k的随机数列表,并且列表中的随机数元素之间是不重复的,如:>>>a=[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]>>>a[1,2,3,4,5,6,7,
系统 2019-09-27 17:52:06 2016
原文地址python的多线程异步常用到queue和threading模块#!/usr/bin/envpython#-*-coding:UTF-8-*-importloggingimportqueueimportthreadingdeffunc_a(a,b):returna+bdeffunc_b():passdeffunc_c(a,b,c):returna,b,c#异步任务队列_task_queue=queue.Queue()defasync_call(fu
系统 2019-09-27 17:51:38 2016
场景说明假设有一个mysql表被水平切分,分散到多个host中,每个host拥有n个切分表。如果需要并发去访问这些表,快速得到查询结果,应该怎么做呢?这里提供一种方案,利用python3的asyncio异步io库及aiomysql异步库去实现这个需求。代码演示importloggingimportrandomimportasynciofromaiomysqlimportcreate_pool#假设mysql表分散在8个host,每个host有16张子表TB
系统 2019-09-27 17:50:32 2016
多态问起面向对象的三大特性,几乎每个人都能对答如流:封装、继承、多态。今天我们就要来说一说Python中的多态。所谓多态:就是指一个类实例的相同方法在不同情形有不同表现形式。多态机制使具有不同内部结构的对象可以共享相同的外部接口。这意味着,虽然针对不同对象的具体操作不同,但通过一个公共的类,它们(那些操作)可以通过相同的方式予以调用。我在《Python中的设计模式详解之:策略模式》一文中详细描述了策略模式的实现,而策略模式就是典型的多态应用。之前的代码我就
系统 2019-09-27 17:49:30 2016
核心代码:#!/usr/bin/envpython#-*-coding:utf-8-*-frombisectimportbisect_LIST1,_LIST2=[],[]_INIT=Falseip2int=lambdaip_str:reduce(lambdaa,b:(a<<8)+b,[int(i)foriinip_str.split('.')])def_init():global_LIST,_INITifnot_INIT:forlinopen('ipdat
系统 2019-09-27 17:48:36 2016
例1:给一个列表如下,里面每个元素对应的是x和y的值a=[[5,2],[6,3],[8,8],[1,3]]现在要挑出y的值为3对应的x的值,即6和1importnumpyasnpa=[[5,2],[6,3],[8,8],[1,3]]#c=np.mat(a),因为只有矩阵(也可以用array)才能用a[0,0]这样的调用#表示第一个数的用法而list没有,故在最后append需要用到#注意:array也没有index这样的用法(只有list有,此题a已经是l
系统 2019-09-27 17:48:10 2016
这篇文章主要介绍了用Python画一个LinkinPark的logo代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下代码如下#-*-coding:UTF-8-*-fromturtleimport*width(17)right(25)circle(150,200,20)left(65)forward(240)left(120)forward(195)left(120)forward(135)left(
系统 2019-09-27 17:47:27 2016
本文实例讲述了Python可变和不可变、类的私有属性。分享给大家供大家参考,具体如下:可变和不可变items=[]print(id(list))items.append(2)#items值改变了print(id(list))#但内存地址没有变id()函数获取内存地址。a="jack"print(id(a))b="jack"print(id(b))#b内存地址和上面a一样a="zhangSan"print(id(a))#a内存地址变了c="zhangSan"
系统 2019-09-27 17:46:53 2016
一、死锁简单来说,死锁是一个资源被多次调用,而多次调用方都未能释放该资源就会造成死锁,这里结合例子说明下两种常见的死锁情况。1、迭代死锁该情况是一个线程“迭代”请求同一个资源,直接就会造成死锁:importthreadingimporttimeclassMyThread(threading.Thread):defrun(self):globalnumtime.sleep(1)ifmutex.acquire(1):num=num+1msg=self.name
系统 2019-09-27 17:46:39 2016
configparse#importconfigparser#config=configparser.ConfigParser()#config["DEFAULT"]={'ServerAliveInterval':'45',#'Compression':'yes',#'CompressionLevel':'9',#'ForwardX11':'yes'#}#config['bitbucket.org']={'User':'hg'}##config['tops
系统 2019-09-27 17:46:08 2016
其实对python熟悉的人都可以自己用paramiko来写任务的分发系统,再结合gevent的协程就能实现异步的处理。如果只想用工具的朋友可以使用一些工具,类似{puppet,saltstack,fabric,ansible,chef}等,其实这些工具的都是很好用的,不过于学习的成本,我建议大家使用ansible,这个模块封装的不错,功能也很齐全。我们首先先安装ansible把复制代码代码如下:pipinstallansible#其实我建议大家用ubunt
系统 2019-09-27 17:38:34 2016
Python3与Python2共存查看当前python版本python--version备份pythonwhichpythonmv/usr/bin/python/usr/bin/python.bak下载安装更新python3wgethttps://www.python.org/ftp/python/3.6.2/Python-3.6.2.tar.xztar-xvJfPython-3.6.2.tar.xz安装关联程序,安装编译python3yuminstall
系统 2019-09-27 17:57:10 2015
前言Matplotlib是Python的绘图库。作为程序员,经常需要进行绘图,在我自己的工作中,如果需要绘图,一般都是将数据导入到excel中,然后通过excel生成图表,这样操作起来还是比较繁琐的,所以最近学习了一下Matplotlib模块,将该模块的常用的绘图手段和大家分享一下,提高大家在工作中的效率;在示例中,我们主要用到Matplotlib和Numpy这两个模块来为大家演示Python强大的绘图功能,相信大家通过我下面的10个示例,基本上可以满足大
系统 2019-09-27 17:56:21 2015