- 军军小站|张军博客
搜索到与相关的文章
Python

Python 之父的解析器系列之五:左递归 PEG 语法

原题|Left-recursivePEGgrammars作者|GuidovanRossum(Python之父)译者|豌豆花下猫(“Python猫”公众号作者)声明|本翻译是出于交流学习的目的,基于CCBY-NC-SA4.0授权协议。为便于阅读,内容略有改动。我曾几次提及左递归是一块绊脚石,是时候去解决它了。基本的问题在于:使用递归下降解析器时,左递归会因堆栈溢出而导致程序终止。【这是我的PEG系列的第5部分。其它文章参见这个目录】假设有如下的语法规则:ex

系统 2019-09-27 17:49:40 1872

Python

python基础学习笔记(二)

python基础学习笔记(二)2013-02-2416:25虫师阅读(...)评论(...)编辑收藏继续第一篇的内容,讲解,python的一些基本的东西。注释为了让别人能够更容易理解程序,使用注释是非常有效的,即使是自己回头再看旧代码也是一样。>>>#获得用户名:>>>user_name=raw_input("whatisyourname?")在python中用井号(#)表示注释。井号(#)右边的内存将不被程序执行。即使没有注释,也应该让代码本身易于理解。

系统 2019-09-27 17:48:56 1872

Python

Python的互斥锁与信号量

并发与锁a.多个线程共享数据的时候,如果数据不进行保护,那么可能出现数据不一致现象,使用锁,信号量、条件锁b.c.互斥锁1.互斥锁,是使用一把锁把代码保护起来,以牺牲性能换取代码的安全性,那么Rlock后必须要relase解锁不然将会失去多线程程序的优势2.互斥锁的基本使用规则:1importthreading2#声明互斥锁3lock=threading.Rlock();4defhandle(sid):#功能实现代码5lock.acquire()#加锁6#

系统 2019-09-27 17:48:09 1872

Python

Python中正则表达式的用法实例汇总

正则表达式是Python程序设计中非常实用的功能,本文就常用的正则表达式做一汇总,供大家参考之用。具体如下:一、字符串替换1.替换所有匹配的子串用newstring替换subject中所有与正则表达式regex匹配的子串result,number=re.subn(regex,newstring,subject)2.替换所有匹配的子串(使用正则表达式对象)reobj=re.compile(regex)result,number=reobj.subn(news

系统 2019-09-27 17:46:38 1872

Python

Python定时任务随机时间执行

背景:有一个爬虫服务,需要定时从公开网站上拉取一些数据,为了避免被识别为爬虫(防爬虫的识别需要根据很多特征,时间仅仅是其中一个维度),需要在指定的时间内,随机生成一个时间爬取脚本是python写的,直接上代码...importloggingimporttracebackfromdatetimeimportdatetimefromapscheduler.schedulers.backgroundimportBackgroundSchedulerschedul

系统 2019-09-27 17:45:32 1872

Python

Python socket网络编程TCP/IP服务器与客户端通信

Pythonsocket网络编程初学python,前段时间买了两本书《python编程从入门到实践》《Python核心编程第三版》,第一本书主要讲的是一些基本语法和一些基本的使用方法,而第二本则深入很多,自己看来也是一知半解,刚好看到了这部分网络编程,依然有好多不太理解的地方,不过想来通过自己不断的摸索,不断地搜寻资料学习,早晚应该会变得通透吧.......这部分主要使用的模块就是socket模块,在这个模块中可以找到socket()函数,该函数用于创建套

系统 2019-09-27 17:38:34 1872

Python

python logging 日志轮转文件不删除问题的解决方法

前言最近在维护项目的python项目代码,项目使用了python的日志模块logging,设定了保存的日志数目,不过没有生效,还要通过contab定时清理数据。分析项目使用了logging的TimedRotatingFileHandler:#!/user/bin/envpython#-*-coding:utf-8-*-importloggingfromlogging.handlersimportTimedRotatingFileHandlerlog=log

系统 2019-09-27 17:38:11 1872

Python

python装饰器初探(推荐)

一、含有一个装饰器#encoding:utf-8############含有一个装饰器#########defouter(func):definner(*args,**kwargs):#要装饰f1(),这里用这俩形式参数,可以接受任意个参数,不管f1定义几个参数print"1"r=func(*args,**kwargs)#这里要用func,不要用f1print"2"returnrreturninner@outer#这里outer不要加括号deff1(a1,

系统 2019-09-27 17:37:53 1872

Python

在Python的Django框架中加载模版的方法

为了减少模板加载调用过程及模板本身的冗余代码,Django提供了一种使用方便且功能强大的API,用于从磁盘中加载模板,要使用此模板加载API,首先你必须将模板的保存位置告诉框架。设置的保存文件就是settings.py。如果你是一步步跟随我们学习过来的,马上打开你的settings.py配置文件,找到TEMPLATE_DIRS这项设置吧。它的默认设置是一个空元组(tuple),加上一些自动生成的注释。TEMPLATE_DIRS=(#Putstringshe

系统 2019-09-27 17:37:53 1872

编程技术

例说 Simple Factory 模式

SimpleFactory模式//抽象音乐盒接口publicinterfaceIMusicBox{publicvoidplay();}//钢琴音乐盒publicclassPianoBoximplementsIMusicBox{publicvoidplay(){System.out.println("拨放钢琴音乐:)");}}//小提琴音乐盒publicclassViolinBoximplementsIMusicBox{publicvoidplay(){Sy

系统 2019-08-29 23:45:06 1872