前言如果大家在网上搜索Python正则表达式,你将会看到大量的垃圾文章会这样写代码:importrepattern=re.compile('正则表达式')text='一段字符串'result=pattern.findall(text)这些文章的作者,可能是被其他语言的坏习惯影响了,也可能是被其他垃圾文章误导了,不假思索拿来就用。在Python里面,真的不需要使用re.compile!为了证明这一点,我们来看Python的源代码。在PyCharm里面输入:i
系统 2019-09-27 17:52:47 2152
前面说了descriptor,这个东西其实和Java的setter,getter有点像。但这个descriptor和上文中我们开始提到的函数方法这些东西有什么关系呢?所有的函数都可以是descriptor,因为它有__get__方法。复制代码代码如下:>>>defhello():pass>>>dir(hello)['__call__','__class__','__delattr__','__dict__','__doc__','__get__','__g
系统 2019-09-27 17:52:34 2152
进程、线程和协程进程的定义:进程,是计算机中已运行程序的实体。程序本身只是指令、数据及其组织形式的描述,进程才是程序的真正运行实例。线程的定义:操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。进程和线程的关系:一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。CPU的最小调度单元是线程不是进程,所以单进程多线程也可以利用多核CPU.协程的定义:协程通过在线程中实现调度,避免了陷
系统 2019-09-27 17:52:14 2152
安装模块windows:pipinstallpymysqlubuntu:sudopip3installpymysqlpython操作mysql步骤importpymysql(1)链接mysql数据库db=pymysql.connect(主机名,用户名,密码,数据库名)(2)设置字符编码db.set_charset('utf8')(3)创建游标对象cursor=db.cursor()(4)准备sql语句sql='...'(5)执行sql语句cursor.ex
系统 2019-09-27 17:51:03 2152
目录1.函数介绍2.函数的参数3.模块与函数4.递归函数5.匿名函数6.多返回值python的学习已经进入到第四天,前面几章我们已经学会了基本的变量操作,以及分支结构和循环结构,那么本章,我们来说说python中的函数1.函数介绍在开发程序中,如果需要调用某段代码多次,但是为了提高编写的效率以及代码的可重用性,所以把具有独立功能的代码块组织成一个独立的小模块,这就是函数。在Python中可以使用def关键字来定义函数,和变量一样每个函数也需要声明一个符合命
系统 2019-09-27 17:50:11 2152
最近编写自己的rpc小框架,涉及到bytes.这里就想梳理一下编码与python的字符串和字节码(bytes)类型.先上个图,有个印象,随时可以回头看.#前置知识字符:在计算机和电信技术中,一个字符是一个单位的字形、类字形单位或符号的基本信息。即一个字符可以是一个中文汉字、一个英文字母、一个阿拉伯数字、一个标点符号等;字符集:多个字符的集合。例如GB2312是中国国家标准的简体中文字符集;字符编码:将某个字符集中的字符转换成一个唯一编号(码点,二进制数据)
系统 2019-09-27 17:48:25 2152
定义使用内置的defaultdict我们可以很容易的定义一个树形数据结构deftree():returndefaultdict(tree)example:json风格users=tree()users['harold']['username']='bell'users['handler']['username']='master'我们可以使用print(json.dumps(users))以json的形式输出,于是我们看到{'harold':{'usern
系统 2019-09-27 17:47:35 2152
join()方法方法返回一个在序列的字符串元素被加入了由str分隔的字符串。语法以下是join()方法的语法:str.join(sequence)参数sequence--这是要连接的元素的顺序。返回值此方法返回一个字符串,在序列seq字符串的连接。元素之间的分离器是字符串str。例子下面的示例演示了join()方法的使用。#!/usr/bin/pythonstr="-";seq=("a","b","c");#Thisissequenceofstrings.
系统 2019-09-27 17:47:13 2152
有时你需临时搭建一个简单的WebServer,但你又不想去安装Apache、Nginx等这类功能较复杂的HTTP服务程序时。这时可以使用Python内建的SimpleHTTPServer模块快速搭建一个简单的HTTP服务器。SimpleHTTPServer模块可以把你指定目录中的文件和文件夹以一个简单的Web页面的方式展示出来。假设我们需要以Web方式共享目录/Users/Mike/Docker,只需要以下这个命令行就可以轻松实现:$cd/Users/M
系统 2019-09-27 17:47:02 2152
安装pipinstallpyinstaller安装打包进入你的编程目录。打开cmd。键入“pyinstaller-w-ic://logo.icoyourfilename.py”目录下出现3个新的目录:dist、build、—pycache—进入dist,找到exe文件,点击打开。注意:文件名一定要加后缀名如fiilename.ico报错半天,发现自己没加图标后缀!!!!说明-F表示生成单个可执行文件-w表示去掉控制台窗口,这在GUI界面时非常有用。不过如果
系统 2019-09-27 17:46:19 2152
python中的闭包从表现形式上定义(解释)为:如果在一个内部函数里,对在外部作用域(但不是在全局作用域)的变量进行引用,那么内部函数就被认为是闭包(closure)。以下说明主要针对python2.7,其他版本可能存在差异。也许直接看定义并不太能明白,下面我们先来看一下什么叫做内部函数:defwai_hanshu(canshu_1):defnei_hanshu(canshu_2):#我在函数内部有定义了一个函数returncanshu_1*canshu_
系统 2019-09-27 17:38:21 2152
高性能服务器TornadoPython的web框架名目繁多,各有千秋。正如光荣属于希腊,伟大属于罗马。Python的优雅结合WSGI的设计,让web框架接口实现千秋一统。WSGI把应用(Application)和服务器(Server)结合起来。Django和Flask都可以结合gunicon搭建部署应用。与django和flask不一样,tornado既可以是wsgi应用,也可以是wsgi服务。当然,选择tornado更多的考量源于其单进程单线程异步IO的
系统 2019-09-27 17:38:14 2152
新手小白,一直在为cmd窗口的暗白色文字感到苦恼,在网上找了许多方法(也就那两种吐舌头),现在稍微整理了一下,便于使用。效果图:importctypesSTD_INPUT_HANDLE=-10STD_OUTPUT_HANDLE=-11STD_ERROR_HANDLE=-12FOREGROUND_DARKBLUE=0x01#暗蓝色FOREGROUND_DARKGREEN=0x02#暗绿色FOREGROUND_DARKSKYBLUE=0x03#暗天蓝色FORE
系统 2019-09-27 17:57:30 2151
一.问题描述在二维数组的遍历中,我们经常使用双层for循环。在某些时候,我们并不需要遍历整个二维数组。当条件满足时就应该终止for循环。但是,直接在内层循环中break并不会让外层循环也终止。二.解决方案使用for...else...语法解决。foriinrange(5):forjinrange(5):print(i,j)ifi==3andj==3:breakelse:continuebreak当次循环正常结束的时候才会执行else中的语句(如果当次循环执
系统 2019-09-27 17:57:26 2151
在新创建的子进程中,会把父进程的所有信息复制一份,它们之间的数据互不影响。使用os.fork()创建该方式只能用于Unix/Linux操作系统中,在windows不能用。importos#注意,fork函数,只在Unix/Linux/Mac上运行,windows不可以pid=os.fork()#子进程永远返回0,而父进程返回子进程的ID。ifpid==0:print('子进程')else:print('父进程')使用Process类类创建multiproc
系统 2019-09-27 17:57:20 2151