在代码实现上,线程的实现与进程的实现很类似,创建对象的格式都差不多,然后执行的时候都是用到start()方法,与进程的区别是进程是资源分配和调度的基本单位,而线程是CPU调度和分派的基本单位.其中多线程的模块处于threading 中的Thread. 多线程实现例子 #coding=utf-8 import threading import time def saySorry(): print("吃饭睡觉打豆豆") time.sleep(1) if __name__ == "…
正则表达式在爬虫项目中应用很广泛,主要方面就是在字符串处理方面,经常会涉及到字符串格式的校验,用起来经常要查看文档才能完成,所以抽了个时间将正则的内容复习了一下. Start re---导入re模块使用 #coding=utf-8 # 导⼊re模块 import re # 使⽤match⽅法进⾏匹配操作 result = re.match(正则表达式,要匹配的字符串) # 如果上⼀步匹配到数据的话,可以使⽤group⽅法来提取数据 result.group() 其中正则表达式就是Pattern,…
python的动态性 什么是动态性呢,简单地来说就是可以在运行时可以改变其结构,如:新的函数.对象.代码都可以被引进或者修改,除了Python外,还有Ruby.PHP.javascript等也是动态语言.下面是python中常用动态性 运行的过程中给对象绑定(添加)属性 >>> class Person(object): def __init__(self, name = None, age = None): self.name = name self.age = age >>…
元类引入 在多数语言中,类就是一组用来描述如何生成对象的代码段,在python中同样如此,但是在python中把类也称为类对象,是的,你没听错,在这里你只要使用class关键字定义了类,其解释器在执行时就会创建一个对象,但是这个对象比较特殊,它可以创建自己的实例对象(像其他语言一样).你可以对它进行下面的操作: 1. 你可以将它赋值给⼀个变量 2. 你可以拷⻉它 3. 你可以为它增加属性 4. 你可以将它作为函数参数进⾏传递 动态创建类 听起来python在这方面跟一些语言的差别了吧,没错它还可…
python实现进程的三种方式及其区别 在python中有三种方式用于实现进程 多进程中, 每个进程中所有数据( 包括全局变量) 都各有拥有⼀份, 互不影响 1.fork()方法 ret = os.fork() if ret == 0: #子进程 else: #父进程 这是python中实现进程最底层的方法,其他两种从根本上也是利用fork()方法来实现的,下面是fork()方法的原理示意图 getpid().getppid()方法 import os rpid = os.fork() if r…
*args 和 ** kwargs 的用法 首先,这两者在用法上都是用来补充python中对不定参数的接受. 比如下面的列子 def wrappedfunc(*args, **kwargs): print("%s called at %s"%(func.__name__, ctime())) 这是一个函数   其次,在调用时候 1.   wrappedfunc('1','2')#这样会自动将'1','2'这两个参数赋值给args 此时args这个变量就是一个list          …
Queue的使用 Queue在数据结构中也接触过,在操作系统里面叫消息队列. 使用示例 # coding=utf-8 from multiprocessing import Queue q = Queue(3) # 初始化⼀个Queue对象, 最多可接收三条put消息 q.put("消息1") q.put("消息2") print(q.full()) # False q.put("消息3") print(q.full()) # True # 因为…
PDB调试 def getAverage(a,b): result =a+b print("result=%d"%result) return result a=100 b=200 c=a+b ret = getAverage(a,b) print(ret) #l--->>list current code #n--->> next #c---->>continue #b--->>>添加断点 #clear -->>>…
近几年,Python一路高歌猛进,成为最受欢迎的编程语言之一,受到无数编程工作者的青睐. 据悉,Python已经入驻部分小学生教材,可以预见学习Python将成为一项提高自身职业竞争力的必修课.那么零基础的学习者应该怎么开始学习呢?本文将分享给大家关于Python核心知识学习的思维导图,一起来看看吧! 近几年,Python一路高歌猛进,成为最受欢迎的编程语言之一,受到无数编程工作者的青睐. 据悉,Python已经入驻部分小学生教材,可以预见学习Python将成为一项提高自身职业竞争力的必修课.那…
现在开始学习Python语言的核心部分.首先了解什么是Python对象,然后讨论最常用的内建类型,接下来讨论标准类型运算符和内建函数,之后给出对标准类型的不同分类方式,最后提一提Python目前还不支持的类型(这对那些有其他高级语言经验的人会有所帮助). 1 Python对象 Python使用对象模型来存储数据,任何类型的值都是一个对象. 所有的Python对像都拥有三个特性:身份,类型,值. 身份:对象的唯一标识,可以用内建函数id()来得到.它与该对象的内存地址相关,程序中极少会用到. 类型…
本章介绍了Python的背景知识,包括什么是Python.Python的起源以及Python的一些关键特性. 1 什么是Python Python是一门优雅而健壮的编程语言,它继承了传统编译语言的强大性和通用性,同时也借鉴了简单脚本和解释语言的易用性. 2 起源 贵铎·范·罗萨姆(Guido van Rossum)于1989年底始创了Python:1991年初,Python发布了第一个公开发行版. 3 特点 3.1 高级 Python是一门强大的.可以进行系统调用的解释型脚本语言:内建有常用的高…
虽然对python的基础知识有所了解,但是为了更深入的学习,要对python的各种经典书籍进行学习 第一章介绍python的优缺点,略过 第二章介绍python起步,第三章介绍python基础,仅记录一些有用的 help(函数名),获取函数的使用帮助,q退出 python支持五种基本的数字类型 int(有符合整数),long(长整数),bool(布尔值),complex(复数),float(浮点数) decimal(十进制浮点数)2.4以后添加了 for item in items常用来循环遍历…
本章将深入介绍Python的文件处理和相关输入输出能力,包括:文件对象(以及它的内建函数.内建方法和属性),标准文件,文件系统的访问方法,文件执行,最后简要涉及持久存储和标准库中与文件有关的模块. 1 文件对象 句柄.文件描述符,可以访问磁盘的普通文件,也可以访问设备文件等类文件.文件只是连续的字节序列,无论单字节还是大块数据,数据传输会用到字节流. 2 文件内建函数 open()和file()功能一样,打开一个文件,返回一个文件对象,打开错误则引发错误.推荐:打开文件时用open,为了说明文件…
11 列表 类似于C语言的数组,但是列表可以包含不同类型的任意对象.列表是可变类型. 创建列表——手动赋值.工厂函数: >>> aList = [12, 'abc'] >>> print aList [12, 'abc'] >>> list('foo') #参数为可迭代对象 ['f', 'o', 'o'] 访问列表元素——下标[]或者切片[:]. 更新列表——直接对索引/索引范围赋值: >>> aList[0] = 'def' #对一…
本章研究Python中的序列:字符串.列表和元组.因为这些类型其实都是由一些成员共同组成的一个序列整体,所以我们把它们统称为序列.序列的存储结构可以表示为: 1 序列 序列类型有着相同的访问模式:按下标访问某一元素[0, N-1],也可以通过切片操作一次得到多个元素. 1.1 标准类型操作符 比较运算.逻辑运算(见4.5节),一般都能适用于所有序列类型. 1.2 序列类型操作符 in, not in #成员关系操作符 + #连接操作符 * #重复操作符 [] #切片操作符 成员关系操作符——ob…
本章的主题是Python中的数字,这里详细介绍每一种数字类型,它们适用的各种运算符,以及用于处理数字的内建函数.在本章的末尾简单介绍了几个标准库中用于处理数字的模块. 1 数字类型 数字:标量贮存,可直接访问.值不可更改,更新数字的值其实是生成了一个新的对象. 创建数字对象:赋值的时候就已经创建. 更新数字对象:给变量赋新值时,其实是创建了一个新的对象,并将其引用赋值给变量.原对象引用计数减1. 删除数字对象:无法真正删除对象,只能用del语句删除对象的这个引用(变量名),之后不能使用这个引用.…
表示择一匹配的管道符号|,表示一个“从多个模式中选中其一”,有时候也称作并或者逻辑或 点号或者句号.符号匹配出了换行符\n以外的任何字符.如果要匹配句号,只需要使用反斜线转移句号符号的功能. ^匹配字符串起始$匹配字符串结尾 []方括号用来常见字符集,用来匹配括号内的字符串 []方括号和^一起使用表示否定[^abc]不匹配方括号中的字符串 {N}大括号表示匹配前面的字符串N次{M,N}表示匹配前面字符串M-N次 ()圆括号表示对正则表达式进行分组或者匹配子组 re模块,核心函数和方法…
字典是python里唯一的映射类型…
比较符号如<,>,=比较的是对象的值 如果要比较对象本身要用is,is not repr()的功能与''所做的事情是一样的 Python不支持的类型有char,byte,指针,short,long,double python缓存了(-1,100)使用这个范围的数字,如果是同一个值,内存地址一样,所以用is函数判断结果是True,不在这个范围的就是False…
本章讲述if.while.for以及与他们搭配的else.elif.break.continue.pass等语句. 1 if语句 语法:三部分——关键字if.条件表达式.代码块.(记住冒号) if cond_expr: expr 1.1 多重条件表达式 条件表达式可以是一个由not.and.or连接起来的逻辑表达式. 1.2 单一语句的代码块 如果代码块只有一行,可以将三部分写在一行,不推荐这样. 2 else语句 同C语言中的if...else...,记住冒号.else一定要与和它搭配的if对…
本章介绍Python语言中的映射类型(字典)和集合类型,包括操作符.工厂函数.内建函数与方法. 1 字典 字典是Python中唯一的映射类型——键key直接映射到值value.字典是容器类型,其对象是可变的.字典中的数据是无序排列的.是哈希表. 创建字典——直接赋值{}.工厂函数dict().内建方法fromkeys(): >>> dict1={} >>> dict2={'name':'earth','port':80} >>> dict1, dict…
本章介绍基本的Python语法.编程风格:并简要介绍标识符.变量和关键字,以及变量占用内存的分配和回收:最后给出一个较大的Python样例程序来体验这些特性. 1 语句和语法 1.1 注释 可以在一行的任何位置,以 # 开头,直至行尾都是注释. 1.2 反斜线继续上一行 一行过长的语句,可以用反斜线 \ 分解成几行.\ 必须是该行的最后一个字符(其后不能有空格等其他任何字符). 闭合符号:小括号().中括号[].花括号{}.三引号"""  """…
16 文件和内建函数open(),file() 打开文件: fobj = open(filename, 'r') for eachLine in fobj: print eachLine, #由于每行自带一个换行符,所以print后面有逗号,阻止print再换行 fobj.close() #已打开的文件,访问结束之后,记得close 其中,filename是文件的字符串名字:'r'为访问模式,表示读(read)文件,其他模式还有 'w':写文件,'a':添加,'+':读写,'b':二进制访问:未…
本章是对Python的主要特性做一个快速介绍. 1 介绍 交互执行时,解释器有两种提示符: 主提示符(>>>):解释器在等待输入下一个语句: 次提示符(...):解释器在等待输入当前语句的其它部分. Python有两种方式来完成要求: 语句:使用关键字来组成命令,可以有输出,也可以没有: 表达式:没有关键字,可以是算术表达式,也可以是函数. 2 程序输出,print语句 可以用print语句显示变量的字符串表示,或者仅使用变量名查看该变量的原始值. >>> myStri…
套接字 套接字是计算机网络数据结构.在任何类型的通信开始之前,网络应用程序必须创建套接字. 有两种类型的套接字,基于文件和面向网络的. unix套接字是第一个家族,AF_UNIX代表地址家族,缩写AF 第二种套接字的家族名称为AF_INET,AF_INET6 python只支持AF_UNIX,AF_NETLINK,AF_TIPC,AF_INET 面向连接的套接字TCP套接字,传输控制协议,必须使用SOCK_STREAM 无连接的套接字UDP套接字,用户数据报协议,必须使用SOCK_DRGAM 创…
1.把一个字符串赋值给变量str.先用print来显示变量的内容,然后用变量名称来显示: >>>str = 'Hello World!' >>>print str Hello World! >>>str 'Hello World!' 在Python3.x中,print语句后被输出的内容必须用括号括起来: >>> str = 'Hello World!' >>> print str SyntaxError: inval…