python
Linux、Mysql基础工程师
这个作者很懒,什么都没留下…
展开
-
IO模块
https://www.runoob.com/python/python-files-io.html转载 2019-07-17 08:55:25 · 265 阅读 · 0 评论 -
第二十九次总结:tcp客户端和服务端,时间戳
*tcp通信客户端 创建tcp套接字 tcp_client = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 连接服务器 tcp_client.connect((str服务器ip, int端口)) 客户端先发消息 tcp_client.send(bytes数据) 客户端收消息...原创 2019-04-19 17:03:15 · 513 阅读 · 0 评论 -
第三十四次总结:进程,可等待队列,事件,进程模块中对象的共性,JoinableQueue
进程 特点 多个进程间,数据不可以共用。数据有保障。 多个进程间,数据无法共用。 如果希望两个进程数据有交流,需要用到一些工具。 工具 数据交流工具 Queue JoinbaleQueue Pipe Manage 控制工具...原创 2019-04-29 08:29:47 · 156 阅读 · 0 评论 -
第三十一次总结:多进程vs多线程
多线程线程的模块import threadingthread英 [θred] 美 [θred] n.(棉、毛、丝等的)线;线索;脉络;思绪;思路;贯穿的主线;线状物;细细的一条v.穿(针);纫(针);穿过;(使)穿过;通过;穿行;穿成串;串在一起线程对象的创建创建一个线程,指向的函数,不接收参数的情况t = threading.Thr...原创 2019-04-23 17:08:25 · 148 阅读 · 0 评论 -
第二十八次总结:
多台电脑通信解决了多台电脑的通信问题老式的通信沟通靠吼找人,广播回复,单播arp协议做的事儿广域网与路由器不同局域网通信依赖网关用udp客户端实现与网络调试助手的udp服务端亓行聊天功能写一个无限循环 客户端先发消息 收后服务端的回应 客户再发消息 再收回应 ...原创 2019-04-18 19:37:54 · 95 阅读 · 0 评论 -
第三十次总结:进程和线程的关系
粘包的解决1,延迟,阻塞发消息1time.sleep(0.1) input, recv recvfrom发消息22,改变我们的发送流程客户端》服务端先发送数据的长度 》 接收数据长度,存为一个变量,cl发送数据的内容 》 连接套接字.recv(cl)struct模块ret = struct.pack("i", 整数) > 生成的是四个字节的...原创 2019-04-23 08:16:50 · 216 阅读 · 0 评论 -
第二十七次总结:random模块,网络编程(2)
1.random模块导入import random随机整数包括最大值,不可加步长random.randint(最小值,最大值)不包括最大值,但可以给步长random.randrange(最小值,最大值,步长)随机选择一个返回random.choice(列表)随机取多个返回随机取多个,返回结果是列...原创 2019-04-17 16:58:44 · 180 阅读 · 0 评论 -
第三十三次总结:队列事件伪装属性的修改
进程间通信队列 创建一个对队对象 队列对象 = multiprocessing.Queue(容量) queue英 [kjuː] 美 [kjuː] n.(人、汽车等的)队,行列;(储存的数据)队列v.(人、车等)排队等候;(使)排队;列队等待 传送数据 队列对象.put(数据) 阻塞的情况:当队列已经被塞满数据时,就会阻塞...原创 2019-04-25 19:04:25 · 129 阅读 · 0 评论 -
第二十六次总结:网络编程
通信思考:两个独立的python程序,如何通信a.py中的变量数据,要传给b.py接收通过文件a.py与b.py通过一个文件来交流数据情况,适用于同一台电脑通过网络同类的例子qq,微信等如果python文件也能通过网络通信就可实现软件开发的架构cs架构 server 服务端...原创 2019-04-16 17:15:18 · 107 阅读 · 0 评论 -
第三十二次总结:线程锁 ,信号量 , 粘包 ,迭代器, 列表生成式
线程锁 功能 解决多个线程同时使用全局变量,有可能会造成的数据的混乱 如何创建锁 锁对象 = threading.Lock() lock英 [lɒk] 美 [lɑːk] v.(用锁)锁上;被锁住;把…锁起来;(使)固定,卡住,塞住n.锁;车锁;制动器;锁定器;制轮楔;(机器部件等的)锁定 如何使用锁 上锁 锁对象....原创 2019-04-24 17:09:12 · 138 阅读 · 0 评论 -
第三十九次总结:协程
函数的复习函数的定义与调用在不执行代码的情况下需要明确代码是如何一步一步执行的def func(): print(1) return 2 print(2)res = func()print(res)生成器函数复习把return换为yield函数就会变为一个生成器只要函数中有了yield,那么这个函数就是生成器...原创 2019-05-08 17:08:46 · 174 阅读 · 0 评论 -
第三十五次总结:函数,进程池
函数:函数的返回值 什么是返回值 返回值就是一个函数运行结束后的返回结果可以通过一个变量来接收函数的返回值变量 = 函数名() 函数没有return的时候 它的返回值默认是 None def show_num(): n = 1 n += 1 n = show_num()print(n) 函数有return的时...原创 2019-04-30 15:33:29 · 137 阅读 · 0 评论 -
第四十四次总结:正则表达式(二)
自顶向下程序设计理念正则表达式或符号|分组符号()功能有两个1,提取数据2,限定区域范围按分组方式来看有两种1,位置的分组, 元组(正则式)2,命名的分组, 类似于字典(?P<组名称>正则...原创 2019-05-16 17:19:15 · 125 阅读 · 0 评论 -
第四十三次总结:正则表达式(一),re的高阶用法
正则表达式的简介它是一个通用的一个表达式可以适用于任何编程语言python中快速体验导入模块后使用匹配单个字符在上一小节中,了解到通过re模块能够完成使用正则表达式来匹配字符串本小节,将要讲解正则表达式的单字符匹配字符 功能 . 匹配任意1个字符(除了\n) [ ] 匹配[ ]中列举的字符 \d...原创 2019-05-16 17:14:12 · 183 阅读 · 0 评论 -
第四十一次总结:装饰器,高阶函数,多值传参,闭包,拆包
高阶函数什么是高阶函数1,接收的参数,是一个函数名(是一个函数的引用)2,函数的返回值,是一个函数名满足任一条,就是高阶函数情况一"""高阶函数之,函数接收的参数是一个函数名"""def eat(): print('吃肉')def func(f): # f = eat f() # eat() func(...原创 2019-05-10 17:05:28 · 165 阅读 · 0 评论 -
第四十次总结:IO模型了解
cpu运行程序程序main.py它没有运行起来的时候,它只是一个文件,只会占用硬盘的空间。并不会占用内存空间。也不会消耗cpu。进程当main.py跑起来(运行起来)会占用内存,存变量,存数据,存运行相关的一些内容还会占用cpu对于单核cpu要处理多个应用程序时相当于是多个程序所在的进程,在抢占cpu的执行权多线程本质并不是并发的并不同时...原创 2019-05-10 17:00:43 · 148 阅读 · 0 评论 -
第三十八次总结:生成器
什么是生成器? 通过列表生成式,我们可以直接创建一个列表,但是,受到内存限制,列表容量肯定是有限的,而且创建一个包含100万个元素的列表,不仅占用很大的存储空间,如果我们仅仅需要访问前面几个元素,那后面绝大多数元素占用的空间都白白浪费了。 所以,如果列表元素可以按照某种算法推算出来,那我们是否可以在循环的过程中不断推算出后续的元素呢?这样就不必创建完整的list,从而节省大量的空间,在...原创 2019-05-07 16:58:13 · 319 阅读 · 0 评论 -
第三十七次总结:迭代器
普通排序排序小结由小到大,由大到小使用sort或者sorted排序默认是由小到大进行排序如果希望由大到小排序加上 reverse=True 参数是否改变身身如果排序用的是方法(方法就是对象的技能)自身发生改变,理解为变身如果排序用的是公有排序函数不改变自身,有返回值列表排序列表对象自带的排序技能# 列表排序list...原创 2019-05-07 16:56:44 · 134 阅读 · 0 评论 -
第四十二次总结:json模块与pickle模块
什么是jsonJSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。简单地说,JSON 可以将 JavaScript 对象中表示的一组数据转换为字符串,然后就可以在函数之间轻松地传递这个字符串,或者在异步应用程序中将字符串从 Web 客户机传递给服务器端程序。这个字符串看起来有点儿古怪,但是JavaScript很容易解释它,而且 JSON 可以表示比"名...原创 2019-05-14 16:02:14 · 138 阅读 · 0 评论 -
第三十六次总结:进程Manager,进程池(二),反射,排序,生成器
进程Manager功能数据同步,无需接收与传递参数,数据变化自动同步用法 创建对象 m = multiprocessing.Manager() 调用方法获得特殊的数据对象 data = m.dict({"num": 0}) 数据对象进行传递并可在另一进程内修改数据 注意 子进程要join一下,在主进程中要join一...原创 2019-04-30 17:20:40 · 376 阅读 · 0 评论 -
第二十次总结:import导入
import 方式导入模块import tool.getsum.add# 导入模块,优先会从启动文件的当前目录开始寻找# 如果找到,就使用# 如果找不到,会在系统模块存放目录去tool.getsum.add.add2num(2,5)from...import 导入模块 from tool import addadd.add2num(3,9)# ...原创 2019-04-09 19:31:55 · 360 阅读 · 0 评论 -
第十七次总结:类属性,类方法
1.类属性的使用类名.属性名例如print(类名.类属性名)例如类名.类属性名 = 值2.类方法的定义 使用装饰器 @classmethod 定义一个方法,第一个参数让它为 cls 3.类方法的使用类.类方法名()如果是在类方法的内部还可以使用cls.类方法名()在类的外部类名.类方法名()4.静态方法的定义 使用装饰...原创 2019-04-03 19:07:23 · 227 阅读 · 0 评论 -
第二十五次总结:飞机大战(五)
1.思维导图的使用xmind新建项目在选中主韪项目的情况下,tab键,会自动的出来一个下级分支在选中当前分支的情况五,点enter,会出来一个同级的分支2.图片循环第一次背景图片精灵组,调用 update方法。结果就是,背景精灵组中的所有背景对象,调用自身的update方法初始化的时候,生成了两个背景图片对象并且,创建了一个背景...原创 2019-04-15 19:53:00 · 265 阅读 · 0 评论 -
第十四次总结
1.定义类的两种方式# 定义一个类,创建类对象# 1,完整版 class 类名(object): #如果类有继承其它的类,其它类的类名就写在括号中# 2,简单版class 类名: # 如果类没有继承其它的类的话,我们使用这一种class Cat: pass2.创建对象接收对象的变量名 = 类名()p = Plane()3.初始化方法int类名...原创 2019-03-30 14:54:35 · 100 阅读 · 0 评论 -
第十一次总结:函数进阶
1.函数参数和返回值的作用函数根据 有没有参数 以及 有没有返回值,可以 相互组合,一共有 4 种 组合形式 无参数,无返回值 无参数,有返回值 有参数,无返回值 有参数,有返回值 如果函数 内部处理的数据不确定,就可以将外界的数据以参数传递到函数内部 如果希望一个函数 执行完成后,向外界汇报执行结果,就可以增加函数的返回值 2.无参数...原创 2019-03-25 21:35:33 · 118 阅读 · 0 评论 -
第六次切片
1.切片描述 Python 表达式 结果 支持的数据类型 切片 "0123456789"[::-2] "97531" 字符串、列表、元组 切片 使用 索引值 来限定范围,从一个大的 字符串 中 切出 小的 字符串 列表 和 元组 都是 有序 的集合,都能够 通过索引值 获取到对应的数据 字典 是一个 ...原创 2019-03-18 19:20:30 · 137 阅读 · 0 评论 -
第九次总结
1.格式化输出%s 字符串的占位符%d 整数型的占位符%f 符点数的占位符%% 输出百分号,(因为一个百分号的意思是除法取余数)print('我的名字叫%s‘ %'小明')给占位符传送一个数据的情况,不加括号print('我的名字叫%s,我的身高是%.2f' %('小明', 1.7324))给占位符传送两个数据的情况,需要加括号2.循环语句中的elsefor 变量 i...原创 2019-03-21 17:36:18 · 169 阅读 · 0 评论 -
第十次总结变量的进阶
1.变量与值的关系值,理解为实体的数据变量,理解为数据的称呼每一个值被创造出来,都会有一个内存id号码。类似于人的身份证号码。赋值操作变量 = 值a = "hello"本质是让一个变量名称指向数值的内存地址我们后面使用变量时,对应内存地址的数据就会被使用2.数据变化分为两类可变类型列表字典不可变类型数字类型字符串元组...原创 2019-03-24 18:12:03 · 125 阅读 · 0 评论 -
第八次总结
1.数据结构的确定[{},{},{}]列表,包裹多个字典2.无限循环while True:一定会有一个退出循环的时机3.退出循环在for 或 while 循环中break4.接收用户的输入input(“提示用户输入的文字信息”)input返回的数据类型是字符串类型复习一下函数的调用启动(执行)函数的方式:函数名()函数名(参数1,参...原创 2019-03-20 20:47:19 · 158 阅读 · 0 评论 -
第七次python小结
TODO注释在 # 后跟上 TODO,用于标记需要去做的工作1.列表包字典的遍历:my_list = [字典1,字典2,字典3]for a in my_list: print(a[‘name’]) a.update(另一个字典) a.get(键)列表添加元素:my_list...原创 2019-03-19 21:07:49 · 131 阅读 · 0 评论 -
第五次总结
1.del关键字: 使用 del 关键字(delete) 同样可以删除列表中元素 del 关键字本质上是用来 将一个变量从内存中删除的 如果使用 del 关键字将变量从内存中删除,后续的代码就不能再使用这个变量了 del name_list[1] 2.关键字,函数和方法关键字 是 Python 内置的、具有特殊意义的标识符In [1]: import...原创 2019-03-14 20:11:46 · 150 阅读 · 0 评论 -
第十二次总结:文件读写与函数递归
1.文件的写操作找到文件,指定文件的路径就可如果文件存在,就直接写入,他会取代原料来的数据如果文件不存在,python帮我们自动创建open()方法,用于指向一个文件,找到或者是锁定一个文件第一个参数,是文件的路径第二个参数,是文件要做什么操作, 'w' write,写。 'r' read,读第三个参数,指定编码的方式,缺省参数,默认值是None,encoding=...原创 2019-03-26 19:15:50 · 299 阅读 · 0 评论 -
面向对象
1.单个对象:属性,方法2.类和对象类,相当于是一个图纸或者是模具对象,是利用类所生产出来的实体的东西,只要有一个类,我们就可以创造出无数的实体。创造出来的实体,我们叫做实例对象创建对象前,要先明确这个对象是用来干什么的它应该有哪些属性,是需要的。有哪些方法是需要的。不同的类,会创建不同的对象飞机图纸的类,只能用于创建飞机对象小熊饼干模具的...原创 2019-03-27 18:36:31 · 115 阅读 · 0 评论 -
第二十一次总结:飞机大战(一)
1.项目认识:2.安装pygame3.游戏准备1.创建项目2.导入素材3.创建py文件4.游戏的第一印象4.游戏初始化和退出、5.游戏中的坐标系6.描述矩形区域7.创建游戏主窗口8.绘制图像三步9.绘制英雄和透明图像10.update方法11.游戏循环游戏时钟12.游戏循环进入到游戏循环,意味着游戏正式开始13.游戏时钟14.英雄动画...原创 2019-04-10 17:46:00 · 711 阅读 · 0 评论 -
第二十四次总结:飞机大战(四)
1.精灵与精灵组2.派生精灵子类3.创建敌机原创 2019-04-15 19:37:46 · 143 阅读 · 0 评论 -
第十九次总结:文件读写
创建目录创建一个文件夹import osos.mkdir("mydir")删除目录os.rmdir("mydir")获取当前路径res = os.getcwd()修改工作目录os.chdir(目标目录)验证是否是文件夹os.path.isdir()修改名称os.rename("bb.txt", "aa.tx...原创 2019-04-08 20:03:20 · 96 阅读 · 0 评论 -
第十六次总结多态,类属性和类方法
1.多态面向对象三大特性 封装根据职责将属性和方法封装到一个抽象的类中 定义类的准则 继承 实现代码的重用 ,相同的代码不需要重复的编写 设计类的技巧 子类针对自己特有的需求,编写特定的代码 多态 不同的 子类对象 调用相同的 父类方法,产生不同的执行结果 多态 可以 增加代码的灵活度 ...原创 2019-04-02 18:59:18 · 175 阅读 · 0 评论 -
第二十三次总结:飞机大战(三)
开发游戏前开发游戏,使用pygame包pip install pygame导入模块import pygamepygame.init()主要的代码pygame.quit()主要的代码主要分两块循环以外循环内循环的外部主要是加载一些东西生成游戏的屏幕使用绘制图片三步曲完成背景图的绘制,第1步是在外部完成的,主要是加载图片,...原创 2019-04-11 16:59:51 · 263 阅读 · 0 评论 -
第十三次总结
1.给对象赋值的方法:给对象添加属性的操作,给对象修改属性操作对象.属性 = 值通过这种方式,可以让对象拥有该属性类创建对向类中的属性,对向都可以使用2.函数中变量的全生命周期复习def fun(name): print(name) fun('张三')函数中的变量是局部变量他的生命周期是从函数运行开始,出生,有生命了当函数运...原创 2019-03-28 18:39:41 · 108 阅读 · 0 评论 -
第十八次总结:模块与包
1.模块模块是 Python 程序架构的一个核心概念 每一个以扩展名 py 结尾的 Python 源代码文件都是一个 模块 模块名 同样也是一个 标识符,需要符合标识符的命名规则 在模块中定义的 全局变量 、函数、类 都是提供给外界直接使用的 工具 模块 就好比是 工具包,要想使用这个工具包中的工具,就需要先 导入 这个模块 2.模块的两种导入...原创 2019-04-07 21:21:15 · 145 阅读 · 0 评论