随笔分类 - Python 自学
摘要:装饰器的作用—— 在不改变函数原代码、调用方式的条件下,对函数增添额外的功能。 装饰器的组成: 高阶函数 函数嵌套 高阶函数: 什么是函数? 函数是对代码段的封装,函数是可执行的,执行函数就是 运行函数中封装的代码段。 通过内置方法,可以看到函数是可调用的! >>> def foo(): ... p
阅读全文
摘要:生产者把产品制造出来后放入队列, 消费者从队列中取产品, 消费的速度必须小于生产的速度,否则就倒闭了。。。 代码:
阅读全文
摘要:由于GIL的存在,python的多线程并不是真正的多线程。如果想充分的时候多核CPU的资源,在Cpython中大部分情况下需要使用到多进程(multiprocess)。 Python通过“multiprocessing”来实现多进程并发的功能。 multiprocessing支持的功能: 在使用mu
阅读全文
摘要:Python是解释型语言,根据不同的底层协议有很多种版本,最常见的是基于C的Cpython,默认情况下我们所说的Python就是Cpython。 Python的GIL(global interpreter lock): 用于解决多线程之间的数据完整性和状态同步而存在,使得不管线程分布在多少个CPU上
阅读全文
摘要:python线程的事件用于主线程控制其他线程的执行,事件主要提供了三个方法wait、clear、set 事件处理的机制:全局定义了一个“Flag”,如果“Flag”值为 False,那么当程序执行 event.wait 方法时就会阻塞,如果“Flag”值为True,那么event.wait 方法时便
阅读全文
摘要:.join(),用于等待线程一个线程结束后运行后续代码 例如: Running at number 1.(延迟2秒)Starting main threading__Main thread__ 守护线程: 在m运行结束后,其他所有子线程直接结束, 可以对m设置join,让子线程有充足的时间运行完毕
阅读全文
摘要:进程(process) 进程是程序在内存中的一个实例(进程是程序的一次执行活动,是动态的) 多道编程的实现就是把多个程序的实例同时在内存中打开,给外部一种并发的假象 进程的缺陷: 1,进程在同一时刻只能做一件事情,如果想同时干两件事,进程是无能为力的。 2,进程在执行任务时,如果阻塞(例如等待I/O
阅读全文
摘要:使用内select模块构造单线程异步服务器 关键: poll(),生成器 服务器模块: 客户端模块: 异步服务器: 这个异步服务器的核心是它的缓冲区: 在等待某个请求完成时,会将受到的数据存储在bytes_received字典中;在等待操作系统安排发送数据时,会将要发送的字节存储在bytes_to_
阅读全文
摘要:如果服务器希望能同时与多个客户端进行会话,那么最简单的方法就是利用操作系统内置的支持,是多个控制线程单独运行同一段代码。 可以创建多个共享相同内存空间的线程,也可以创建完全独立运行的进程。 优点: 简洁:直接使用单线程服务器的代码,创建多个进程运行它的多个副本。 缺点: 服务器能够同时通信的客户端数
阅读全文
摘要:模块 json & pickle 把str/int字典写入文件 读取字典文件: 按照常规读取方法编写脚本—— 这时候,python是一个字符一个字符的读取的,读取的内容完全不是字典格式的。 原因: 因为存储在磁盘上的数据是str格式的,但是读取文件的时候是通过2进制的格式存放在内存中的。 序列化:
阅读全文
摘要:os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径 os.chdir("dirname") 改变当前脚本工作目录;相当于shell下cd os.curdir 返回当前目录: ('.') os.pardir 获取当前目录的父目录字符串名:('..') os.makedirs
阅读全文
摘要:通过模块random与内置方法chr进行配合 方法‘chr’: 把数字0-255转换成ASSIC码对应值 使用方法: >>> for i in range(10):... chr(i)... '\x00''\x01''\x02''\x03''\x04''\x05''\x06''\x07''\x08'
阅读全文
摘要:模块分为三类: 1、自定义模块 2、内置标准模块(标准库) 3、开源模块 Python 包管理工具: PIP Windows 位置: Users\xxx\AppData\Local\Programs\Python\Python36-32\Scripts 1,pip.exe 2,pip36.exe 3
阅读全文
摘要:斐波那契数列: 一个数列中前两个数相加等于第三个数:(据说在炒股中经常使用) 这里需要使用到递归;在python中,在函数体中调用自身的行为就是递归,python不允许无限递归,所以必须给一个出口。 一个简单的递归需求: 列出2^1-2^32之间的所有值 代码段: 解析—— 1,定义一个函数fun(
阅读全文
摘要:一个简单的装饰器—— 无参数传递 装饰器工作原理: 1,@是装饰器符号,在这里装饰器实施下列工作: 1.1 把被装饰函数的函数名作为实参传递给装饰器函数(所以在配置装饰器的时候,必须保留一个形参,否则报错),也就是说运行装饰器就是运行hi(hello) 1.2 装饰器自动运行,等于说执行函数 hi(
阅读全文
摘要:开放封闭原则(OCP,Open Closed Principle)是所有面向对象的编程的原则核心,其思想是: 软件实体应该是可扩展,而不可修改的。也就是说,对扩展是开放的,而对修改是封闭的。 因此,开放封闭原则主要体现在两个方面: 对扩展开放,意味着有新的需求或变化时,可以对现有代码进行扩展,以适应
阅读全文
摘要:迭代器(iterator) 迭代器是访问集合元素的一种方式。迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退,迭代器不要求所有元素实现存在, 只有当迭代到某个元素的时候才使用该元素,这一个特性非常适用于处理超大规模集合或者几个G的文件。 特点: 生成一个迭代器
阅读全文
摘要:通过python,编写一个篮球运动员初选功能的代码: 1、提示输入姓名; 2、提示输入身高; 如果身高大于等于 180 入选, 如果身高小于等于 180 落选, 3、把入选的与落选的人,通过字典+列表保存起来 4、最后打印初选结果! 脚本—— Welcome to the screening pro
阅读全文
摘要:Python 3最重要的新特性大概要算是对文本和二进制数据作了更为清晰的区分。文本总是Unicode,由str类型表示,二进制数据则由bytes类型表示。Python 3不会以任意隐式的方式混用str和bytes,正是这使得两者的区分特别清晰。你不能拼接字符串和字节包,也无法在字节包里搜索字符串(反
阅读全文
摘要:每次给游戏添加新功能时,通常也会引入一些新设置。为了让所有的设置进行统一管理,我们可以配置一个名为 setting的模块,这个模块中包含一个setting的类,用来存储所有的设置。 #代码—— #!/usr/bin/env python3.5 #filename = setting '''存储所有的
阅读全文

浙公网安备 33010602011771号