摘要:
查询指定字段 select 字段1,字段2 from 表名; 消除重复行(重复指的是结果集中的所有完全重复行) select distinct 字段1,字段2... from 表名 比较运算符(< > != = ) select * from 表名 where id>4 逻辑运算符(and or n 阅读全文
摘要:
mysql -uroot -p 登陆数据库 select now(); 显示当前时间 \q 退出 show databases; 显示数据库 create database 数据库名 charset=utf8; 创建数据库 drop database 数据库名字; 删除数据库 use 数据库名 切换 阅读全文
摘要:
树的特点: 树的遍历: 广度优先遍历 一层一层的遍历(可以依靠Queue来实现) 深度优先遍历: 先序: 根 左 右 中序: 左 根 右 后序: 左 右 根 满二叉树和完全二叉树的区别: 完全二叉树是由满二叉树而引出来的。对于bai深度为duK的,有n个结点的二叉树,当且仅当其每一个结点都与深度为K 阅读全文
摘要:
用 timeit.Timer.timeit() 方法来测试代码的运行时间: 测试一下append 和 insert 哪一个效率更高, 实例化Timer类时,第一个参数 是字符串类型,表示的是执行函数的语句. 第二个参数是设置,需要 从当前模块导入一个测试函数. 因为并不是在这个文件中执行的. 调用 阅读全文
摘要:
算法的五大特性 : 1. 输入, 0 个或多个 2. 输入 1 个或多个 3. 有穷性 4. 确定性 5. 可行性 如果一个算法执行效率(步骤) 标记成 T(n) = n^3 * 2 ,那么这个2 可以看作一个常数 k ,就可以写成 T(n) = n^3 * k 可以看出,如果改变常数k的值,并不会 阅读全文
摘要:
re.match 尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match()就返回none。 re.search 扫描整个字符串并返回第一个成功的匹配。 替换: re.sub(pattern, repl, string, count=0, flags=0) 参数: patter 阅读全文
摘要:
TCP 三次握手: SYN --> SYN+ACK --> ACK 四次挥手: FIN --> ACK (FIN) --> ACK TCP十种状态: LISTEN SYN_SENT SYN_RECV ESTABLISHED FIN_WAIT1 FIN_WAIT2 CLOSE_WAIT LAST_AC 阅读全文
摘要:
tcp和udp对比起来.还是tcp相对稳定一些,但是因为有三次挥手和四次握手,以及确认包(ack)的存在,可能在速度上会比udp慢. 用python的socket模块可以建立tcp服务端: 其中 listen() 可以把建立的套接字变成被动监听的状态. accept() 这一步会导致堵塞,等待客户端 阅读全文
摘要:
socket.socket() 可以创建一个套接字: 简单的发送和接收信息的socket程序. 另: 用 struct.pack() 打包 ,用 unpack() 解包. 还可以直接广播: 阅读全文
摘要:
创建进程的方式中有个 callback ,也就是回调. 看代码: 主进程 一直在重复 print(' 主进程-pid=%d ' %os.getpid()) 这一句话, 当子进程 执行完 test 之后,有个返回值 haha 然后主进程放下手中的工作去执行 test2 ,返回值就是传进去的参数 .这就 阅读全文
摘要:
线程之间,全局变量可以共享,但是局部变量依然是不共享的,线程的创建方式: threading.Thread(),还可以定义一个类继承Thread,重写他的run方法,具体和进程的写法一样. 那么,线程之前全局变量共享,如果两个线程同时修改一个全局变量,就会有一些麻烦,所以需要用到互斥锁: Lock( 阅读全文
摘要:
在类unix操作系统下,可以用 os.fork() 创建一个新的进程,windows系统不可以: 在执行了 os.fork() 这一句之后,会有两个进程同时向下执行, 返回的 ret 分别是 0(子进程)的 和 大于0(父进程)的 , getpid() 是获取当前进程的pid getppid() 是 阅读全文
摘要:
在类 里面,其实并没有方法这个东西,所有的东西都保存在属性里面,所谓的调用方法其实是类里面的一个同名属性指向了一个函数(方法),返回的是函数的引用,再用 函数() 这种方式就可以调用它 在调用实例的方法的时候,实际上给对象传过去的只是一个字符串而已, 比如 t = Test() , 假设 func 阅读全文
摘要:
python的垃圾回收机制是以引用计数为主,加上标记-清除,分代收集等辅助方式组成的,如果想打开gc功能,需要 import gc 模块 ,然后 gc.enable() 就打开了这个功能,关闭是 gc.disable() . 查看一个对象的引用计数: sys.getrefcount() 总是会比实际 阅读全文
摘要:
类在创建对象时,会调用 __init__ 初始化一些东西 , 然后 如果类中定义了 __call__ 方法,可以直接用 对象() 这种方法调用,所以可以用类来装饰函数: 首先 @Test 就是 test = Test(test) 先创建了Test类的一个对象 这个时候 test 就不是指向函数了,而 阅读全文