随笔分类 -  Python

Python 协程 (Coroutine)
摘要:协程 (Coroutine) 什么是协程 协程(微线程)是比线程更轻量化的存在,像一个进程可以拥有多个线程一样,一个线程也可以拥有多个协程 最重要的是,协程不是被操作系统内核所管理,而完全是由程序所控制 如何判断 必须在只有一个单线程里实现并发 修改共享数据不需加锁 用户程序里自己保存多个控制流的上 阅读全文

posted @ 2019-07-06 17:09 doubtful 阅读(3520) 评论(0) 推荐(0) 编辑

Python thread & process
摘要:线程 [点击查看 阅读全文

posted @ 2019-07-03 16:05 doubtful 阅读(283) 评论(0) 推荐(0) 编辑

Python process (进程)
摘要:进程 (process) 进程是对各种资源管理的集合,包含对各种资源的调用、内存的管理、网络接口的调用 进程要操作 CPU 必须先启动一个线程,启动一个进程的时候会自动创建一个线程,进程里的第一个线程就是主线程 程序执行的实例 有唯一的进程标识符(pid) multiprossing 模块 启动进程 阅读全文

posted @ 2019-07-03 15:59 doubtful 阅读(15626) 评论(0) 推荐(0) 编辑

Python thread (线程)
摘要:线程 (thread) 操作系统最小的调度单位,是一串指令的集合 程序一开始就有一个主线程,新启动的线程和主线程之间互不影响,主线程启动子线程之后就相互独立(子线程也可以启动线程),无论子线程是否执行结束主线程都会继续执行,程序在所有线程执行结束后关闭 全局解释器锁 (GIL) 由于无法控制线程执行 阅读全文

posted @ 2019-07-03 15:56 doubtful 阅读(1382) 评论(0) 推荐(0) 编辑

Python queue (队列)
摘要:queue (队列) 主要作用 1. 解耦,使程序实现松耦合(一个模块修改不会影响其他模块) 2. 提高效率 队列与列表的关系 队列中数据只有一份,取出就没有了,区别于列表,列表数据取出只是复制了一份 分类 FIFO (先入先出) queue.Queue(maxsize=0) 示例: 输出结果: 1 阅读全文

posted @ 2019-07-02 09:47 doubtful 阅读(37975) 评论(3) 推荐(1) 编辑

Python socket & socket server
摘要:socket 网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket(套接字)。 建立网络通信连接至少要一对socket。socket是对TCP/IP的封装 使用方法 步骤: 服务器端: 1. 实例化类 2. bind 绑定端口 3. listen 监听端口 4. 阅读全文

posted @ 2019-06-10 14:45 doubtful 阅读(215) 评论(0) 推荐(0) 编辑

Python 字典
摘要:字典是另一种可变容器模型,且可存储任意类型对象。 字典是无序的 (Python3.7 中字典变为有序) 字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中 键必须是唯一的,但值则不必。 值可以取任何数据类型,但键必须是不可变的,如字符 阅读全文

posted @ 2019-06-07 09:59 doubtful 阅读(175) 评论(0) 推荐(0) 编辑

Python assert(断言)
摘要:Python assert(断言)可以分别后面的判断是否正确,如果错误会报错 作用:后面的程序需要依赖前面的条件(可以用if、else代替) 示例: 输出结果: No problem 输出结果: Traceback (most recent call last): File "D:/test.py" 阅读全文

posted @ 2019-04-07 21:47 doubtful 阅读(1903) 评论(0) 推荐(0) 编辑

Python 异常处理
摘要:异常处理语法: 示例: 输出结果: 出错了! 多个异常的示例: 程序有异常的输出: 未知错误: 'str' object is not callable 运行结束 程序没有异常的输出: 一切正常 运行结束 自定义异常: 示例: 输出结果: 自定义错误 常见异常: 其他异常: 阅读全文

posted @ 2019-04-04 19:44 doubtful 阅读(261) 评论(0) 推荐(0) 编辑

Python 反射(reflection)
摘要:反射是指通过字符串映射或修改程序运行时的状态、属性、方法, 有以下4个方法 1.getattr(object, name, default = None) 根据字符串获取 obj 对象里对应 str 方法的内存地址 示例: class Dog(object): def __init__(self, 阅读全文

posted @ 2019-04-04 16:41 doubtful 阅读(1342) 评论(0) 推荐(0) 编辑

Python 面向对象编程(进阶部分)
摘要:静态方法: 通过 @staticmethod 装饰器即可把其装饰的方法变为一个静态方法。普通的方法,可以在实例化后直接调用,并且在方法里可以通过self.调用实例变量或类变量,但静态方法是不可以访问实例变量或类变量的,一个不能访问实例变量和类变量的方法,其实相当于跟类本身已经没什么关系了,它与类唯一 阅读全文

posted @ 2019-04-03 15:28 doubtful 阅读(413) 评论(0) 推荐(0) 编辑

Python switch(多分支选择)的实现
摘要:Python 中没有 switch/case 语法,如果使用 if/elif/else 会出现代码过长、不清晰等问题。 而借助字典就可以实现 switch 的功能 示例: def case1(): # 第一种情况执行的函数 print('This is the case1') def case2() 阅读全文

posted @ 2019-03-26 16:48 doubtful 阅读(110476) 评论(0) 推荐(3) 编辑

Python re模块(正则表达式)
摘要:正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配。 re 模块使 Python 语言拥有全部的正则表达式功能。 常用正则表达式符号: 常用的匹配语法: re.match 和 re.search 可以使用group(num) 或 groups() 匹配对象函数来获取匹配 阅读全文

posted @ 2019-03-25 10:21 doubtful 阅读(349) 评论(0) 推荐(0) 编辑

Python装饰器
摘要:无返回值的装饰器: 输出结果: This is test1. The func has run for 1.000288248062134 s 输出结果: In the test2 Your name isname1 The func has run for 2.0002686977386475 s 阅读全文

posted @ 2019-03-21 22:14 doubtful 阅读(218) 评论(0) 推荐(0) 编辑

Python编码
摘要:默认编码: python3里默认编码是unicode unicode 分为 utf-32(占4个字节),utf-16(占两个字节),utf-8(占1-4个字节), 所以utf-16就是现在最常用的unicode版本, 不过在文件里存的还是utf-8,因为utf8省空间 转换方法: 在进行编码转换时, 阅读全文

posted @ 2019-03-21 16:53 doubtful 阅读(303) 评论(0) 推荐(0) 编辑

Python集合
摘要:集合(set)是一个无序的不重复元素序列,它的主要作用如下: 去重,把一个列表变成集合,就自动去重了 关系测试,测试两组数据之前的交集、差集、并集等关系 可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典 阅读全文

posted @ 2019-03-21 10:53 doubtful 阅读(181) 评论(0) 推荐(0) 编辑

Python的深copy和浅copy
摘要:浅拷贝(copy):拷贝父对象,不会拷贝对象的内部的子对象。 深拷贝(deepcopy): copy 模块的 deepcopy 方法,完全拷贝了父对象及其子对象。 浅copy: 输出结果: [1, 2, [1, 2, 3]] [1, 2, [1, 2, 3]] [1, 2, [0, 2, 3], 4 阅读全文

posted @ 2019-03-21 09:37 doubtful 阅读(277) 评论(0) 推荐(0) 编辑

Python元组
摘要:Python的元组(tuple)与列表(list)类似,不同之处在于元组的元素不能修改。(不希望数据被修改时使用)元组使用小括号,列表使用方括号。tup1 = (1, 2, 3, 4, 5)tup2 = 'a', 'b', 'c' # 没有括号也可以tup3 = (10,) # 当元组中只有一个元... 阅读全文

posted @ 2019-03-20 21:22 doubtful 阅读(181) 评论(0) 推荐(0) 编辑

Python字符串
摘要:字符串是 Python 中最常用的数据类型。我们可以使用引号 ' 或 " 来创建字符串。 Python 访问子字符串,可以使用方括号来截取字符串(左闭右开) var1 = 'hello world!' print(var1) print(var1[0]) print(var1[1:4]) var2 阅读全文

posted @ 2019-03-20 16:54 doubtful 阅读(434) 评论(0) 推荐(0) 编辑

导航