Chapter12Lexerandparsergenerators(ocamllex,ocamlyacc)Thischapterdescribestwoprogramgenerators:ocamllex,thatproducesalexicalanalyzerfromasetofregularexpressionswithassociatedsemanticactions,andocamlyacc,thatproducesaparserfromagram
系统 2019-08-12 09:26:46 2076
一基本概念1并行和并发1并行,parallel同时做某些事,可以互不干扰的同一时刻做几件事如高速公路上的车道,同一时刻,可以有多个互不干扰的车运行在同一时刻,每条车道上可能同时有车辆在跑,是同时发生的概念2并发,concurrency也是同时做某事,但强调的是同一时段做了几件事。并行是可以解决并发问题的。2并发的解决1队列,缓冲区队列:排队就是队列,先进先出,解决了资源使用的问题。缓冲区:排程的队列,其实就是一个缓冲地带,就是缓冲区优先队列:对比较重要的事
系统 2019-09-27 17:57:11 2075
概述数据结构是组织数据的方式,以便能够更好的存储和获取数据。数据结构定义数据之间的关系和对这些数据的操作方式。数据结构屏蔽了数据存储和操作的细节,让程序员能更好的处理业务逻辑,同时拥有快速的数据存储和获取方式。在这篇文章中,你将了解到多种数据结构以及这些数据结构在Python中实现的方式。抽象数据类型和数据结构数据结构是抽象数据类型(ADT)的实现,通常,是通过编程语言提供的基本数据类型为基础,结合相应的代码来实现。通常来说,数据结构分为两类:原始数据结构
系统 2019-09-27 17:54:21 2075
解法:1、n代表的是左括号和右括号的个数,最后生成的字符串的长度为2n,首先想到的就是枚举的方法,假设有2n的数组,每一个格子都有两种情况,填做括号还是右括号。2、很明显上面的方法是不符合常理的,因为做括号和右括号都是有限制,当n为3的时候,不会出现((((((的情况,所以当我们进行递归的时候,就需要进行判断,当左括号用完的时候就要停止,称为剪枝。3、动态规划解法,当看到有和没有,放和不放的时候,可以考虑动态规划的解法。这里有个leetcode上面的讲解动
系统 2019-09-27 17:53:30 2075
首先需要有连接mongodb数据库基本信息:CONFIG_HOST='11.111.11.11'CONFIG_PORT='27017'CONFIG_DATABASE='databasename'CONFIG_USER='username'CONFIG_PASSWORD=XXXXXXCONFIG_TABLE='tablename'python通过pymongo对mongodb进行访问,提取出databasename中tablename中的colname_a,
系统 2019-09-27 17:53:00 2075
方法1(推荐):在Python中,False,0,’’,[],{},()都视为假,因此可以直接进行逻辑运算。此方法效率最高。方法2:调用len方法,查看元素个数是否为0。此方法效率较低。方法3:让解释器再生成一个空列表,并将这个空列表与list_temp进行比较。此方法效率最低。list_temp=[]print('方法1(推荐):在Python中,False,0,'',[],{},()都视为假,因此可以直接进行逻辑运算。此方法效率最高。')iflist_
系统 2019-09-27 17:52:58 2075
守护进程主进程创建子进程目的是:主进程有一个任务需要并发执行,那开启子进程帮我并发执行任务主进程创建子进程,然后将该进程设置成守护自己的进程关于守护进程需要强调两点:其一:守护进程会在主进程代码执行结束后就终止其二:守护进程内无法再开启子进程,否则抛出异常:AssertionError:daemonicprocessesarenotallowedtohavechildren如果我们有两个任务需要并发执行,那么开一个主进程和一个子进程分别去执行就ok了,如果
系统 2019-09-27 17:52:46 2075
简单定义图轴:importnumpyasnpimportmatplotlib.pyplotasplt创建一个简单的matplotlib实例:fig=plt.figure()rect=fig.patch#arectangleinstancerect.set_facecolor('lightgoldenrodyellow')ax1=fig.add_axes([0.1,0.3,0.4,0.4])rect=ax1.patchrect.set_facecolor('
系统 2019-09-27 17:52:41 2075
python实现文本进度条程序进度条加载进度条单行刷新功能,具体内容如下所示:利用time库来替代某个程序的进行过程,做实例,思路是,简单打印出来程序进度单行刷新关键是\r,python默认是print后换行,所以加一个\r是光标回退到之前位置importtimetm=10print('{:-^18}'.format('开始'))foriinrange(tm+1):a='#'*ib='.'*(tm-i)c=(i/tm)*100print('\r{:^3.0
系统 2019-09-27 17:50:08 2075
一些基本用法,ssl证书和身份认证是尚未验证的importrequestsheaders={'User-Agent':'Mozilla/5.0(WindowsNT10.0;Win64;x64)''AppleWebKit/537.36(KHTML,likeGecko)Chrome/74.0.3729.169Safari/537.36',#'Cookie':'XXXXXXXXXXXXXXXX'}#取得图片#res=requests.get("https://p
系统 2019-09-27 17:47:54 2075