python基础
文章平均质量分 80
he-y
这个作者很懒,什么都没留下…
展开
-
logging模块(日志模块)
目录一、日志级别二、函数式简单配置三、logger对象配置四、logging模块的Formatter,Handler,Logger,Filter对象五、Logger与Handler的级别六、Logger的继承(了解)七、应用django的配置一、日志级别import logginglogging.debug('调试debug') #...原创 2018-10-17 11:31:41 · 1895 阅读 · 0 评论 -
configparser模块(用于配置文件的格式)
目录创建文件查找文件增删改操作该模块适用于配置文件的格式与windows ini文件类似,可以包含一个或多个节(section),每个节可以有多个参数(键=值)。创建文件来看一个好多软件的常见文档格式如下:[DEFAULT]ServerAliveInterval = 45Compression = yesCompressionLevel = 9ForwardX...原创 2018-10-16 14:09:43 · 234 阅读 · 0 评论 -
hashlib模块(摘要算法,用于加密)
目录算法介绍加盐算法介绍Python的hashlib提供了常见的摘要算法,如MD5,SHA1,SHA224, SHA256, SHA384, SHA512等算法。什么是摘要算法呢?摘要算法又称哈希算法、散列算法。它通过一个函数,把任意长度的数据转换为一个长度固定的数据串(通常用16进制的字符串表示)。摘要算法就是通过摘要函数f()对任意长度的数据data计算出固定长度的摘要...原创 2018-10-16 14:00:50 · 482 阅读 · 1 评论 -
面向对象进阶
目录isinstance和issubclass反射__str__和__repr____del__item系列__new____call____len____eq__ isinstance和issubclass isinstance(obj,cls)检查是否obj是否是类 cls 的对象class Foo(object):passobj = Fo...原创 2018-10-09 15:03:58 · 125 阅读 · 0 评论 -
面向对象
目录一、类的相关知识1)初识类声明类有两种作用:属性引用和实例化查看属性&调用方法关于self类属性的补充2)对象的相关知识定义及调用的固定模式3)类命名空间与对象、实例的命名空间4)面向对象的组合用法二、面向对象的三大特性1)继承什么是继承继承与抽象(先抽象再继承)继承与重用性派生接口类抽象类抽象类与接口类...原创 2018-09-29 14:47:09 · 876 阅读 · 0 评论 -
序列化模块(python中的数据类型和str转换的模块)
目录(1)jsondumps序列化方法 loads反序列化方法dump序列化方法 load反序列化方法(对文件操作)ensure_ascii关键字参数其他参数说明json的格式化输出(2)pickle(3)shelve什么叫序列化——将原本的字典、列表等内容转换成一个字符串的过程就叫做序列化。序列化的目的1、以某种存储形式使自定义对象持久化;2、将对...原创 2018-09-21 22:52:12 · 1093 阅读 · 0 评论 -
sys模块(和python解释器打交道的模块)
sys模块是与python解释器交互的一个接口sys.argv 命令行参数List,第一个元素是程序本身路径sys.exit(n) 退出程序,正常退出时exit(0),错误退出sys.exit(1)sys.version 获取Python解释程序的版本信息sys.path 返回模块的搜索路径,初始化时使用PYTHONP...原创 2018-09-20 17:14:51 · 163 阅读 · 0 评论 -
网络编程
目录一.软件开发的架构1.C/S架构2.B/S架构二.网络基础1.一个程序如何在网络上找到另一个程序?2.osi七层模型3.socket概念socket层理解socket3.套接字(socket)的发展史基于文件类型的套接字家族基于网络类型的套接字家族4.tcp协议和udp协议三.套接字(socket)初使用基于TCP协议的socket...原创 2018-10-31 14:16:47 · 220 阅读 · 0 评论 -
进程(四):进程间通信 —— Queue(队列)和Pipe(管道)
目录进程间通信队列 概念介绍方法介绍代码实例生产者消费者模型JoinableQueue([maxsize]) 管道(了解)进程间通信IPC(Inter-Process Communication)队列 概念介绍创建共享的进程队列,Queue是多进程安全的队列,可以使用Queue实现多进程之间的数据传递。●Queue([maxsize]) 创建...原创 2018-11-13 10:18:30 · 1801 阅读 · 0 评论 -
协程
目录协程介绍Greenlet模块Gevent模块Gevent之同步与异步Gevent之应用举例一Gevent之应用举例二 之前我们学习了线程、进程的概念,了解了在操作系统中进程是资源分配的最小单位,线程是CPU调度的最小单位。按道理来说我们已经算是把cpu的利用率提高很多了。但是我们知道无论是创建多进程还是创建多线程来解决问题,都要消耗一定的时间来创建进程、创建线程、...原创 2018-11-17 17:14:27 · 1404 阅读 · 0 评论 -
进程(三):进程同步——Lock(锁)、Semaphore(信号量)、Event(事件)
目录锁 —— multiprocess.Lock信号量 —— multiprocess.Semaphore(了解)事件 —— multiprocess.Event(了解)锁 —— multiprocess.Lock 当多个进程使用同一份数据资源的时候,就会引发数据安全或顺序混乱问题。(1)多进程抢占输出资源import osimport timeimport ra...原创 2018-11-12 17:41:30 · 1327 阅读 · 0 评论 -
进程(一):理论知识
目录操作系统背景知识什么是进程进程的概念操作系统引入进程的概念的原因进程的特征进程与程序中的区别进程调度进程的并行与并发同步异步阻塞非阻塞状态介绍同步和异步阻塞与非阻塞同步/异步与阻塞/非阻塞进程的创建与结束进程的创建进程的结束操作系统背景知识顾名思义,进程即正在执行的一个过程。进程是对正在运行程序的一个抽象。进程的概念起...原创 2018-11-12 17:08:49 · 297 阅读 · 0 评论 -
进程(二):进程开启方式与多进程
目录multiprocess模块multiprocess.process模块process模块介绍使用process模块创建进程进阶-多进程利用类开启进程守护进程socket聊天并发实例多进程中的其他方法multiprocess模块 之前我们已经了解了很多进程相关的理论知识,了解进程是什么应该不再困难了,刚刚我们已经了解了,运行中的程序就是一个进程。所...原创 2018-11-12 16:47:08 · 941 阅读 · 0 评论 -
线程(二):线程开启方式与多线程(threading模块)
目录线程的创建Threading.Thread类1)线程的创建2)多线程与多进程3)Thread类的其他方法4)守护线程multiprocess模块的完全模仿了threading模块的接口,二者在使用层面,有很大的相似性,因而不再详细介绍(官方链接)线程的创建Threading.Thread类1)线程的创建#创建线程的方式1from threading im...原创 2018-11-15 17:01:32 · 395 阅读 · 0 评论 -
线程(一):理论知识
目录一、操作系统线程理论1)线程概念的引入背景进程有了进程为什么要有线程线程的出现2)进程和线程的关系3)线程的特点4)使用线程的实际场景5)内存中的线程6)用户级线程和内核级线程(了解)用户级线程内核级线程用户级与内核级线程的对比混合实现二、线程和python1)全局解释器锁GIL2)python线程模块的选择一、操作系统线...原创 2018-11-15 16:37:07 · 334 阅读 · 0 评论 -
进程(六):进程池(Pool)
目录进程池multiprocess.Pool模块概念介绍参数介绍主要方法其他方法(了解)代码实例回调函数进程池为什么要有进程池?进程池的概念。在程序实际处理问题过程中,忙时会有成千上万的任务需要被执行,闲时可能只有零星任务。那么在成千上万个任务需要被执行的时候,我们就需要去创建成千上万个进程么?首先,创建进程需要消耗时间,销毁进程也需要消耗时间。第二即便...原创 2018-11-13 11:59:20 · 8637 阅读 · 1 评论 -
进程(五):进程之间的数据共享
展望未来,基于消息传递的并发编程是大势所趋即便是使用线程,推荐做法也是将程序设计为大量独立的线程集合,通过消息队列交换数据。这样极大地减少了对使用锁定和其他同步手段的需求,还可以扩展到分布式系统中。但进程间应该尽量避免通信,即便需要通信,也应该选择进程安全的工具来避免加锁带来的问题。以后我们会尝试使用数据库来解决现在进程之间的数据共享问题。Manager模块介绍进程间数据是...原创 2018-11-13 10:26:08 · 7096 阅读 · 1 评论 -
os模块(和操作系统打交道的模块)
'''os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径os.chdir("dirname") 改变当前脚本工作目录;相当于shell下cdos.curdir 返回当前目录: ('.')os.pardir 获取当前目录的父目录字符串名:('..')os.makedirs('dirname1/dirname2') 可生成多层递归目录os.remo...原创 2018-09-20 16:31:01 · 148 阅读 · 0 评论 -
random模块(随机数模块)
import random#随机小数print(random.random()) # 大于0且小于1之间的小数print(random.uniform(1,3)) #大于1小于3的小数#随机整数print(random.randint(1,5)) # 大于等于1且小于等于5之间的整数print(random.randrange(1,10,2)) # 大于等于1且小于1...原创 2018-09-20 15:54:25 · 1779 阅读 · 0 评论 -
函数进阶——名称空间与作用域
目录一、函数的命名空间命名空间一共分为一下三种:1)内置命名空间 —— Python解释器2)全局命名空间 —— 我们写的代码但不是函数中的代码3)局部命名空间 —— 函数三种命名空间之间的加载与取值顺序: 二、函数的作用域globals和locals方法 关键字:global三、函数的嵌套和作用域链 nonlocal关键字四、函数的本质...原创 2018-09-01 14:01:07 · 406 阅读 · 0 评论 -
字典 (dict) 的增删改查及操作方法
目录字典 (dict) 1、增2、删 3、改 4、查字典 (dict) 字典是python中唯一的映射类型,采用键值对(key-value)的形式存储数据。python对key进行哈希函数运算,根据计算的结果决定value的存储地址,所以字典是无序存储的,且key必须是可哈希的。可哈希表示key必须是不可变类型,如:数字、字符串、元组。 字典(dictiona...原创 2018-08-25 09:38:27 · 5377 阅读 · 0 评论 -
ascii、unicode、utf-8、gbk编码区别及转换
ascii:A:00000010 8位 一个字节unicode:A:00000000 00000001 00000010 00000100 32位 四个字节中:00000000 00000001 00000010 00000100 32位 四个字节utf-8:A:00000110 8位 一个字节中:00000010 00000110 16位 两个字节gbk:A:...原创 2018-08-30 17:57:28 · 4618 阅读 · 0 评论 -
集合 (set) 的增删改查及 copy()方法
目录一、集合1.集合的创建2.集合的增 2.1直接增加 2.2迭代增加3.集合的减 3.1 .remove('元素') 3.2 .pop() 3.3 .clear() 3.4 del4.集合的其他方法 4.1交集 (& 或者 intersection) 4.2并集 (| 或者 union) 4.3差...原创 2018-08-31 09:06:44 · 526 阅读 · 0 评论 -
函数基础
目录初识函数定义与调用1)函数的定义:2)函数的注释:3)函数的返回值 4)函数的参数: 4.1传递多个参数 4.2位置参数初识函数定义与调用1)函数的定义:#函数定义def mylen(): """计算s1的长度""" s1 = "hello world" length = 0 for i in s1: ...原创 2018-08-31 09:28:15 · 353 阅读 · 0 评论 -
字符串(str)的操作方法
目录字符串的索引与切片Python字符串运算符 字符串方法字符串的索引与切片索引即下标,就是字符串组成的元素从第一个开始,初始索引为0以此类推。str = 'ABCDEFGHIJK'print(str[0])print(str[5])切片就是通过索引(索引:索引:步长)截取字符串的一段,形成新的字符串(原则就是顾头不顾腚)。str = 'ABCDEFGHIJ...原创 2018-08-21 13:33:53 · 6049 阅读 · 0 评论 -
python文件操作
目录一,文件操作基本流程。二,文件编码三,文件的打开模式四,文件操作方法。 五,文件的修改。一,文件操作基本流程。计算机系统分为:计算机硬件,操作系统,应用程序三部分。我们用python或其他语言编写的应用程序若想要把数据永久保存下来,必须要保存于硬盘中,这就涉及到应用程序要操作硬件,众所周知,应用程序是无法直接操作硬件的,这就用到了操作系统。操作系统把复杂的硬件操...原创 2018-08-29 14:11:58 · 177 阅读 · 0 评论 -
列表(list)的增删改查及操作方法和元组(tuple)的查
目录一、列表1、增2、删3、改二、元组:一、列表列表是python中的基础数据类型之一,其他语言中也有类似于列表的数据类型,比如js中叫数组,他是以[]括起来,每个元素以逗号隔开,而且他里面可以存放各种数据类型比如:li = [‘alex’,123,Ture,(1,2,3,’wusir’),[1,2,3,’小明’,],{‘name’:’alex’}]列表相比于字...原创 2018-08-23 11:56:53 · 1375 阅读 · 0 评论 -
装饰器函数
目录一、装饰器1、开放封闭原则2、装饰器的固定格式:二、装饰器的使用1、无参装饰器(示例)2、带参装饰器(示例)3、多个装饰器装饰同一个函数一、装饰器装饰器的本质:一个闭包函数装饰器的功能:在不修改原函数及其调用方式的情况下对原函数功能进行扩展1、开放封闭原则 1.对扩展是开放的 为什么要对扩展开放呢? 我们说,任何一个程序,不...原创 2018-09-03 11:07:08 · 415 阅读 · 0 评论 -
迭代器和生成器及生成器表达式、列表推导式
目录1、迭代器2、生成器3、列表推导式4、生成器表达式5、各种推导式详解6、小结1、迭代器迭代是Python最强大的功能之一,是访问集合元素的一种方式。迭代器是一个可以记住遍历的位置的对象。迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。迭代器有两个基本的方法:__iter__() 和 __next__()。...原创 2018-09-06 13:47:04 · 330 阅读 · 0 评论 -
time时间模块
目录表示时间的三种方式(1)时间戳(timestamp)(2)格式化的时间字符串(Format String): ‘1999-12-06’(3)元组(struct_time) 几种格式之间的转换#常用方法1.time.sleep(secs)(线程)推迟指定的时间运行。单位为秒。2.time.time()获取当前时间戳表示时间的三种方式在Python中,通常...原创 2018-09-19 23:00:43 · 584 阅读 · 0 评论 -
collections模块(python中的扩展数据类型)
目录1)namedtuple:生成可以使用名字来访问元素内容的tuple2)deque:双端队列,可以快速的从另外一侧追加和推出对象3)OrderedDict:有序字典4)defaultdict:带有默认值的字典5)Counter:3.Counter: 计数器,主要用来计数在内置数据类型(dict、list、set、tuple)的基础上,collections模块还提供了几...原创 2018-09-19 15:41:39 · 441 阅读 · 0 评论 -
正则表达式和re模块
目录正则表达式字符组 元字符量词. ^ $* + ? { }字符集[][^]分组 ()与 或 |[^]转义符 \贪婪匹配re模块 re模块下的常用方法注意1、findall的优先级查询2、split的优先级查询扩展1、匹配标签2、匹配整数3、数字匹配正则表达式字符组 在同一个位置可能出现...原创 2018-09-19 09:12:35 · 658 阅读 · 0 评论 -
异常处理
目录异常和错误1)错误分成两种2)什么是异常3)python中的异常种类异常处理什么是异常处理为什么要进行异常处理?如何进行异常处理?1: 使用if判断式2:python为每一种异常定制了一个类型,然后提供了一种特定的语法结构用来进行异常处理(try...except)日常处理知识总结异常和错误1)错误分成两种1.语法错误(这种错误,根本过不...原创 2018-09-23 19:22:50 · 231 阅读 · 0 评论 -
软件开发规范
#=============>bin目录:存放执行脚本#start.pyimport sys,osBASE_DIR=os.path.dirname(os.path.dirname(os.path.abspath(__file__)))sys.path.append(BASE_DIR)from core import corefrom conf import my_log...原创 2018-09-23 11:53:50 · 1530 阅读 · 0 评论 -
模块与包
目录一、模块1)模块介绍1.什么是模块2.为何要使用模块3.以spam.py为例来介绍模块的使用:文件名spam.py,模块名spam2)使用模块之import1.import2.在第一次导入模块时会做三件事,重复导入会直接引用内存中已经加载好的结果3.被导入模块有独立的名称空间4.为模块名起别名5.在一行导入多个模块3)使用模块之from ... ...原创 2018-09-23 11:44:44 · 295 阅读 · 0 评论 -
内置函数和匿名函数
目录一、内置函数内置函数表1)作用域相关2)迭代器/生成器相关3)其他字符串类型代码的执行输入输出相关内存相关数据类型相关文件操作相关模块操作相关帮助方法和调用相关查看参数所属类型的所有内置方法4)基础数据类型相关5)和数据结构相关二、匿名函数一、内置函数截止到python版本3.6.2,现在python一共为我们提供了...原创 2018-09-07 15:41:34 · 851 阅读 · 0 评论 -
递归函数与二分查找算法
一、递归函数1.递归调用的定义递归调用是函数嵌套调用的一种特殊形式,函数在调用时,直接或间接调用了自身,就是递归调用def foo(n): print(n) n += 1 foo(n)foo(1)2.递归最大深度最大递归深度默认是997/998 —— 是python从内存角度出发做得限制超过递归深度会报错:RecursionError: maxi...原创 2018-09-17 17:27:51 · 428 阅读 · 0 评论 -
IO模型——阻塞IO、非阻塞IO、多路复用IO、异步IO、selectors模块
目录一、IO模型介绍二、阻塞IO(blocking IO)三、非阻塞IO(non-blocking IO)四、多路复用IO(IO multiplexing)五、异步IO(Asynchronous I/O)六、IO模型比较分析七、selectors模块一、IO模型介绍 为了更好地了解IO模型,我们需要事先回顾下:同步、异步、阻塞、非阻塞 同步(sync...原创 2018-11-17 17:36:28 · 285 阅读 · 0 评论