Python

用 Python 实现读写锁

♚作者:weapon,闲来笑浮生悬笔一卷入毫端,朱绂临身可与言者不过二三。博客:zhihu.com/people/hong-wei-peng起步Python提供的多线程模型中并没有提供读写锁,读写锁相对于单纯的互斥锁,适用性更高,可以多个线程同时占用读模式的读写锁,但是只能一个线程占用写模式的读写锁。通俗点说就是当没有写锁时,就可以加读锁且任意线程可以同时加;而写锁只能有一个线程,且必须在没有读锁时才能加上。简单的实现这是读写锁的一个简单的实现,self.

系统 2019-09-27 17:56:19 2099

Python

python中正则表达式的使用详解

从学习Python至今,发现很多时候是将Python作为一种工具。特别在文本处理方面,使用起来更是游刃有余。说到文本处理,那么正则表达式必然是一个绝好的工具,它能将一些繁杂的字符搜索或者替换以非常简洁的方式完成。我们在处理文本的时候,或是查询抓取,或是替换.一.查找如果你想自己实现这样的功能模块,输入某一个ip地址,得到这个ip地址所在地区的详细信息.然后你发现http://ip138.com可以查出很详细的数据但是人家没有提供api供外部调用,但是我们可

系统 2019-09-27 17:55:15 2099

Python

为什么 Python 不用设计模式?

点击上方“开发者技术前线”,选择“星标”13:21在看真爱作者:刘欣|责编:可可|来源:码农翻身在遥远的Python王国,有一位少年,非常热爱编程,他的父母想给他报一个班,问了万能的朋友圈以后,发现大家都推荐同一个老师,人称吉先生。于是他的父母毫不犹豫就交了一笔不菲的学费,每周六日下午让孩子去学习。少年学习非常刻苦,很快就学会了Python语法、工具和框架。老师像是见到了可以雕刻的美玉,倾囊相授,告诉他不仅要把代码写对,还要让代码漂亮、优雅、可读、可维护。

系统 2019-09-27 17:52:56 2099

Python

python实现统计代码行数的小工具

一个用python实现的统计代码行数的小工具,供大家参考,具体内容如下实现功能计算出某一目录以及子目录下代码文件的行数在计算代码的过程中,只对标准命名的文件进行统计,如[文件名.文件类型]排除了以“#”开头的包含文件,宏定义等,如#include,#define,#pragma等排除了c,cpp文件中的“//”,“/…/”等的注释排除了python文件中import,from等开头的导入使用方法新建countLines.py文件,复制代码到文件中,将其放在

系统 2019-09-27 17:50:59 2099

Python

python基础知识学习——装饰器

**装饰器**1.装饰器的概念装饰器的本质就是一个函数,它的作用是为其他函数添加一个新的功能,但是不改变原函数的源代码和调用方式。装饰器的两大原则:不修改被修饰函数的源代码不修改被修饰函数的调用方式2.装饰器的知识储备(或者我们可以理解成,一个装饰器是由什么组成)装饰器=高阶函数+函数嵌套+闭包3.装饰器的实现首先我们定义一个累加求和的函数importtimedefcal():res=0foriinrange(100):res+=itime.sleep(1

系统 2019-09-27 17:50:53 2099

Python

python实现随机漫步方法和原理

我们通过模拟随机漫步可以说明如何运用数组运算。通过内置的random模块以纯Python的方式实现1000步的随机漫步根据前100个随机漫步值生成的折线图,plt.plot(walk[:100])随机漫步中各步的累计和,可以用一个数组运算来实现。因此,我用np.random模块一次性随机产生1000个“掷硬币”结果(即两个数中任选一个),将其分别设置为1或-1,然后计算累计和我们就可以沿着漫步路径做一些统计工作了,比如求取最大值和最小值假设我们想要知道本次

系统 2019-09-27 17:49:14 2099

Python

解决Python设置函数调用超时,进程卡住的问题

背景:最近写的Python代码不知为何,总是执行到一半卡住不动,为了使程序能够继续运行,设置了函数调用超时机制。代码:importtimeimportsignaldeftest(i):time.sleep(i%4)print"%dwithintime"%(i)returniif__name__=='__main__':defhandler(signum,frame):raiseAssertionErrorforiinrange(1,10):try:sign

系统 2019-09-27 17:48:29 2099

Python

Python使用itchat模块实现群聊转发,自动回复功能示例

本文实例讲述了Python使用itchat模块实现群聊转发,自动回复功能。分享给大家供大家参考,具体如下:1.itchat自动把好友发来的消息,回复给他仅能实现自动回复原文给好友发来的文本消息、图片表情消息。#!/usr/bin/python#coding=utf-8importitchatfromitchat.contentimport*@itchat.msg_register([PICTURE,TEXT])defsimple_reply(msg):if

系统 2019-09-27 17:48:05 2099

Python

python实现跨文件全局变量的方法

在使用Python编写的应用的过程中,有时候会遇到多个文件之间传递同一个全局变量的情况。本文就此给出了如下的解决方法供大家参考。文件1:globalvar.py#!/usr/bin/envpython2.7classGlobalVar:db_handle=Nonemq_client=Nonedefset_db_handle(db):GlobalVar.db_handle=dbdefget_db_handle():returnGlobalVar.db_han

系统 2019-09-27 17:47:45 2099

Python

python第六次作业-随笔

接触了Python这么多时间后,感触良多。每一次学习都是不一样的体验,Python课也是一个很不一样的上课体验。这样的课程和其他的课程完全两样,让我们一改对传统课程的认知,由于机房的环境,自带电脑的我们也会更快进入编程环境中。如果说以往的上课让我们觉得枯燥,这样上课的方式能让学生更快地进入状态。博客园的教学方式也是十分的新颖,电子作业的提交、网上作业的发布,使得学习生活借助了互联网的便利。尽管作业中的代码是对所有人开放的,但开源的好处可想而知。每个初学者都

系统 2019-09-27 17:47:04 2099

Python

在Python中操作列表之List.pop()方法的使用

pop()方法从列表移除并返回最后一个对象或obj。语法以下是pop()方法的语法:list.pop(obj=list[-1])参数obj--这是一个可选参数,该对象的索引可以从该列表中删除返回值此方法返回从列表中移除对象例子下面的例子显示了pop()方法的使用#!/usr/bin/pythonaList=[123,'xyz','zara','abc'];print"AList:",aList.pop();print"BList:",aList.pop(2

系统 2019-09-27 17:46:58 2099

Python

在Python中操作时间之strptime()方法的使用

strptime()方法分析表示根据格式的时间字符串。返回值是一个struct_time所返回gmtime()或localtime()。格式参数使用相同的指令使用strftime();它默认为“%a%b%d%H:%M:%S%Y”相匹配的ctime()所返回的格式。如果字符串不能按格式进行解析,或者如果它具有解析后多余的数据,ValueError被挂起。语法以下是strptime()方法的语法:time.strptime(string[,format])参数

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

Python

Python开发必备的30个编程技巧

直接交换2个数字的位置Python提供了一种直观的方式在一行代码中赋值和交换(变量值)。如下所示:x,y=10,20print(x,y)x,y=y,xprint(x,y)#1(10,20)#2(20,10)在上面代码中,赋值的右侧形成了一个新元组,而左侧则立刻将该(未被引用的)元组解包到名称和。待赋值完成后,新元组就变成了未被引用状态,并且被标为可被垃圾回收,最终也就发生了数字交换。链接比较操作符比较运算符的聚合是另一种有时用起来很顺手的技巧。n=10re

系统 2019-09-27 17:46:28 2099

Python

python 之 Django框架(ORM常用字段和字段参数、关系字段和和字段

12.324DjangoORM常用字段1.id=models.AutoField(primary_key=True):int自增列,必须填入参数primary_key=True。当model中如果没有自增列,则自动会创建一个列名为id的列。2.IntegerField:一个整数类型,范围在-2147483648to21474836473.name=models.CharField(max_length=32):varchar字符类型,必须提供max_len

系统 2019-09-27 17:46:07 2099