摘要: 写在前面:首先感谢导师-猴哥对我的认可(求多分享点编程经验、工具、多开课),学习编程是一个痛苦和快乐的过程,希望大家共勉 本文介绍MarkDown的基本语法、使用MarkDown画简单的流程图、使用Xmind画复杂的流程图 MarkDown介绍 互联网时代,大家都开始将笔记记录在云端,你是否在记录笔 阅读全文
posted @ 2017-09-05 18:16 coldcastle 阅读(40609) 评论(0) 推荐(1) 编辑
摘要: 在Windows上安装Git 实话实说,Windows是最烂的开发平台,如果不是开发Windows游戏或者在IE里调试页面,一般不推荐用Windows。不过,既然已经上了微软的贼船,也是有办法安装Git的。 Windows下要使用很多Linux/Unix的工具时,需要Cygwin这样的模拟环境,Gi 阅读全文
posted @ 2017-09-05 16:08 coldcastle 阅读(256) 评论(0) 推荐(0) 编辑
摘要: remote procedure call 服务端 客户端 阅读全文
posted @ 2017-09-05 10:06 coldcastle 阅读(658) 评论(0) 推荐(0) 编辑
摘要: RabbitMQ基本用法 进程queue用于同一父进程创建的子进程间的通信 而RabbitMQ可以在不同父进程间通信(例如在word和QQ间通信) 示例代码 生产端(发送) 消费端(接收) 消息分发 RabbitMQ消息分发(一对多) 一个生产者,多个消费者 多个消费者时,是轮询机制,依次分发给消费 阅读全文
posted @ 2017-09-05 10:05 coldcastle 阅读(2954) 评论(0) 推荐(0) 编辑
摘要: I/O 多路复用之select、poll、epoll详解 select,poll,epoll都是IO多路复用的机制。I/O多路复用就是通过一种机制,一个进程可以监视多个描述符,一旦某个描述符就绪(一般是读就绪或者写就绪),能够通知程序进行相应的读写操作。但select,poll,epoll本质上都是 阅读全文
posted @ 2017-09-05 09:53 coldcastle 阅读(177) 评论(0) 推荐(0) 编辑
摘要: 阻塞IO, 非阻塞IO, 同步IO,异步IO 介绍 先说明几个概念 用户空间与内核空间 为了保证用户进程不能直接操作内核(kernel),保证内核的安全,操心系统将虚拟空间(内存)划分为两部分,一部分为内核空间,一部分为用户空间。 针对linux操作系统而言,将最高的1G字节(从虚拟地址0xC000 阅读全文
posted @ 2017-09-05 09:52 coldcastle 阅读(341) 评论(0) 推荐(0) 编辑
摘要: 多进程 启用多进程,可以解决python调用计算机CPU多核运算的问题 启动一个进程 每一个进程都是由一个父进程启动的 进程间数据交互 不管哪种方式,都是找一个中间代理,相当于不同国家的人交流需要找一个翻译 不同进程间内存是不共享的,要想实现两个进程间的数据交换,可以用以下方法: 进程间数据交互(通 阅读全文
posted @ 2017-09-05 09:51 coldcastle 阅读(2771) 评论(0) 推荐(0) 编辑
摘要: 队列queue 队列用于线程之间安全的信息交换 队列和列表的区别:队列里的信息get()后就没了,而列表获取数据则是copy,原列表里的值还在 使用前先实例化队列 先入先出,默认队列大小无限制 后入先出 存储数据时可设置优先级的队列 使用此类型队列时,put入一个元组,按元组的第一个值排序 put( 阅读全文
posted @ 2017-09-05 09:50 coldcastle 阅读(196) 评论(0) 推荐(0) 编辑
摘要: 事件(event) 事件是不同线程之间的同步对象 enent可以通过设置、等待、清除一个标识(flag),来进行线程间的控制 线程可以通过获取这个标志位(flag)的状态(设置或未设置)来控制线程 事件其实就相当于一个全局变量(设置为True,未设置为False),线程通过这个全局变量的状态来控制自 阅读全文
posted @ 2017-09-05 09:48 coldcastle 阅读(1448) 评论(0) 推荐(0) 编辑
摘要: 线程 "参考文档" 线程是操作系统能够进行运算调度的最小单位,它被包含在进程中,是进程中的实际运作单位 一个进程实际上可以由多个线程的执行单元组成。每个线程都运行在进程的上下文中,并共享同样的代码和全局数据。 由于在实际的网络服务器中对并行的需求,线程成为越来越重要的编程模型,因为多线程之间比多进程 阅读全文
posted @ 2017-09-05 09:47 coldcastle 阅读(193) 评论(0) 推荐(0) 编辑
摘要: paramiko模块 该模块基于SSH用于连接远程服务器并执行相关操作 "参考文档" SSHClient 用于连接远程服务器并执行命令 SFTPClient 用于连接远程服务器并执行上传下载 SSH密钥 RSA 非对称密钥验证 密钥分两部分 公钥 pubilc key 私钥 private key 阅读全文
posted @ 2017-09-05 09:46 coldcastle 阅读(280) 评论(0) 推荐(0) 编辑
摘要: socket socket是把TCP/IP UDP做一个封装,send,recv... 网络协议基于socket,进行收发等动作 服务端 1. 声明实例 family address 地址簇 AF.INET IPV4(默认) AF.INET6 IPV6 AF.UNIT local 类型 socket 阅读全文
posted @ 2017-09-05 09:44 coldcastle 阅读(155) 评论(0) 推荐(0) 编辑
摘要: 使用socketserver 老规矩,先引入 必须创建一个类,且继承 这个类中必须重写 函数负责和客户端进行交互,所以的交互都写这里面 可以重写的方法 我的客户端和服务端例子 服务端 客户端 ThreadingTCPServer类中的 阅读全文
posted @ 2017-09-05 09:44 coldcastle 阅读(160) 评论(0) 推荐(0) 编辑
摘要: 异常处理基本语法 捕获异常 捕获多个异常 常用异常类型 AttributeError 试图访问一个对象没有的树形,比如foo.x,但是foo没有属性x IOError 输入/输出异常;基本上是无法打开文件 ImportError 无法引入模块或包;基本上是路径问题或名称错误 IndentationE 阅读全文
posted @ 2017-09-05 09:43 coldcastle 阅读(393) 评论(0) 推荐(0) 编辑
摘要: 面向对象 Object Oriented Programing 类的特性 封装 1、防止数据被随意修改 2、使外部程序不需要灌注对象内部的构造,只需要通过此对象对外提供的接口进行直接访问即可 继承 1、类可以派生出子类 2、父类里定义的属性、方法自动被子类继承 3、通过父类= 子类的方式以最小代码量 阅读全文
posted @ 2017-09-05 09:40 coldcastle 阅读(266) 评论(0) 推荐(0) 编辑
摘要: #使用内置函数__import__ lib = __import__('lib.aa')#获取模块,实际上是导入lib obj = lib.aa.C()#调用模块内函数 print(obj.name) #官方建议使用此方式 import importlib aa = importlib.import 阅读全文
posted @ 2017-09-05 09:39 coldcastle 阅读(114) 评论(0) 推荐(0) 编辑
摘要: 在Python中,通常有这几种方式来表示时间: 1)时间戳 2)格式化的时间字符串 3)元组(struct_time)共九个元素。 由于Python的time模块实现主要调用C库,所以各个平台可能有所不同。 时间戳(timestamp)的方式:通常来说,时间戳表示的是从1970年1月1日00:00: 阅读全文
posted @ 2017-09-05 09:36 coldcastle 阅读(209) 评论(0) 推荐(0) 编辑
摘要: subprocess模块是对 os.system os.spawn 以上这两个的替换,以后尽量使用subprocess,这两个会逐步淘汰 os.system 输出命令结果到屏幕,返回命令执行状态(0成功) os.popen("dir") 保存命令执行结果,无执行状态 os.popen("dir"). 阅读全文
posted @ 2017-09-05 09:27 coldcastle 阅读(205) 评论(0) 推荐(0) 编辑
摘要: all() 可迭代对象内有一个为False则返回False 例: print(all([0,-1,5]) False print(all([1,-1,5]) True any() 可迭代对象有一个为真则返回True print(any((1,0,0,0,0))) True ascii() 把数据对象 阅读全文
posted @ 2017-09-05 09:17 coldcastle 阅读(138) 评论(0) 推荐(0) 编辑
摘要: 列表生成式 [i*2 for i in range(10)] [func(i) for i in range(10)] #作用:使代码更简洁 生成器 通过列表生成式,我们可以直接创建一个列表。但是,受到内存限制,列表容量肯定是有限的。而且,创建一个包含100万个元素的列表,不仅占用很大的存储空间,如 阅读全文
posted @ 2017-09-05 09:15 coldcastle 阅读(91) 评论(0) 推荐(0) 编辑