非阻塞IO(non-blockingIO)Linux下,可以通过设置socket使其变为non-blocking。当对一个non-blockingsocket执行读操作时,流程是这个样子:从图中可以看出,当用户进程发出read操作时,如果kernel中的数据还没有准备好,那么它并不会block用户进程,而是立刻返回一个error。从用户进程角度讲,它发起一个read操作后,并不需要等待,而是马上就得到了一个结果。用户进程判断结果是一个error时,它就知道
系统 2019-09-27 17:53:07 2123
如下所示:#coding:utf-8importbinasciia='worker'#先把worker转换成二进制数据然后在用十六进制表示b=binascii.b2a_hex(a)printb#与b2a_hex相反printbinascii.a2b_hex(b)#这个功能和b2a_hex()一样c=binascii.hexlify(a)printc#这个功能和a2b_hex()一样printbinascii.unhexlify(c)######运行结果##
系统 2019-09-27 17:52:56 2123
作者:HelloGitHub-ProdesireHelloGitHub的《讲解开源项目》系列,项目地址:https://github.com/HelloGitHub-Team/Article前言在前面三篇介绍argparse的文章中,我们全面了解了argparse的能力,相信不少小伙伴们都已经摩拳擦掌,想要打造一个属于自己的命令行工具。本文将以我们日常工作中最常见的git命令为例,讲解如何使用argparse库来实现一个真正可用的命令行程序。本系列文章默认
系统 2019-09-27 17:52:35 2123
实现一个支持动态扩容的数组并完成其增删改查#通过python实现动态数组"""数组特点:占用一段连续的内存空间,支持随机(索引)访问,且时间复杂度为O(1)添加元素时间复杂度:O(n)删除元素时间复杂度:O(n)"""classArr:def__init__(self,capacity=10):"""构造函数:paramcapacity:数组最大容量,不指定的话默认为10"""self._capacity=capacityself._size=0#数组有效
系统 2019-09-27 17:52:16 2123
python的dict用起来很方便,可以自定义key值,并通过下标访问,示例如下:复制代码代码如下:>>>d={'key1':'value1',...'key2':'value2',...'key3':'value3'}>>>printd['key2']value2>>>lambda表达式也是很实用的东东,示例如下:复制代码代码如下:>>>f=lambdax:x**2>>>printf(2)4>>>两者结合可以实现结构相似的函数调用,使用起来很方便,示例如
系统 2019-09-27 17:51:38 2123
爬虫即网络爬虫,英文是WebSpider。翻译过来就是网络上爬行的蜘蛛,如果把互联网看作一张大网,那么爬虫就是在大网上爬来爬去的蜘蛛,碰到想要的食物,就把他抓取出来。我们在浏览器中输入一个网址,敲击回车,看到网站的页面信息。这就是浏览器请求了网站的服务器,获取到网络资源。那么,爬虫也相当于模拟浏览器发送请求,获得到HTML代码。HTML代码里通常包含了标签和文字信息,我们就从中提取到我们想要的信息。通常爬虫是从某个网站的某个页面开始,爬取这个页面的内容,找
系统 2019-09-27 17:51:07 2123
Python这门解释性语言也有专门的线程模型,Python虚拟机使用GIL(GlobalInterpreterLock,全局解释器锁)来互斥线程对共享资源的访问,但暂时无法利用多处理器的优势。在Python中我们主要是通过thread和threading这两个模块来实现的,其中Python的threading模块是对thread做了一些包装的,可以更加方便的被使用,所以我们使用threading模块实现多线程编程。这篇文章我们主要来看看Python对多线程
系统 2019-09-27 17:51:00 2123
1.可传入参数:@app.route('/user/')#常用的不加参数的时候默认是字符串形式的@app.route('/post/')#常用的#指定int,说明是整型的@app.route('/post/')@app.route('/post/')@app.route('/login',methods=['GET','POST'])DEFAULT_CONVERTERS={'default':UnicodeConverter,'string':Unicod
系统 2019-09-27 17:49:32 2123
更详细见:https://blog.csdn.net/Lord_sh/article/details/92653790>>>x=np.arange(0,16).reshape(4,4)>>>xarray([[0,1,2,3],[4,5,6,7],[8,9,10,11],[12,13,14,15]])>>>idx=[[1,0,0,0],[0,1,0,0],[0,1,0,0],[0,0,0,1]]>>>idx[[1,0,0,0],[0,1,0,0],[0,1,
系统 2019-09-27 17:49:14 2123
python基础学习笔记(三)2013-04-1800:22虫师阅读(...)评论(...)编辑收藏序列概览Python包含6种内建的序列,这里重点讨论最常用的两种类型:列表和元组。列表与元组的主要区别在于,列表可以修改,元组则不能。也就是说如果要根据要求来添加元素,那么列表可以会更好用;而出于某些原因,序列不能修改的时候,使用元组则更为合适。在操作一组数值的时候,序列很好用。可以用序列表示数据库中一个人的信息---第一1是姓名,第2个元素是年龄。根据上述
系统 2019-09-27 17:48:57 2123