- 博客(21)
- 收藏
- 关注
原创 python
# -*- coding: UTF-8 -*-# 单例模型# 重写new方法class Mysingleton(object): __obj = None __init_flag = True def __new__(cls, *args, **kwargs): if cls.__obj == None: cls.__obj...
2019-02-28 22:28:24
256
转载 Python关于super的用法
一、前言Python 面向对象中有继承这个概念,初学时感觉很牛逼,里面也有个super类,经常见到,最近做一些题才算是理解了。特地记录分享给后来研究的小伙伴,毕竟现在小学生都开始学了(滑稽脸)二、代码直接上干货,能把下面一个问题全答对,后面就不用看了。class A(): def go(self): print ("go A go!") def st...
2019-02-20 14:12:59
152
原创 网络协议
第一节: 1. mac地址是唯一的,为什么可以修改?想想身份证,身份证号是唯一的,不能改变的,但是可以造价。mac地址全球唯一,它是固化在网卡里的。网卡毕竟是个硬件,需要软件支持,既操作系统识别。重点来了,操作系统识别出来的mac地址是可以更改的,它只不过是一个字符串。我们常说的修改mac指的是修改电脑中记录的既注册表中的记录。 2. 有了mac地址为什么还要有ip地址。举个例子,身...
2019-01-29 23:41:13
186
原创 Mysql方面知识
第一节:大体来说,Mysql可以分为Server层和存储引擎层两部分。Server 层包括连接器、查询缓存、分析器、优化器、执行器等,连接器作用:管理连接,权限验证;分析器:词法分析,语法分析;优化器:执行计划生成,索引选择;执行器:操作引擎,返回结果。支持InnoDB、MyISAM、Memory等多个存储引擎。InnoDB在5.5.5版本开始成为了默认存储引擎。我们在创建表的时候可以...
2019-01-08 23:34:18
383
原创 MysqL_select for update锁详解
先来举一个在某些应用场景下会出现数据不一致的例子,当然存储引擎是InnoDB(至于为什么,后面再告诉你)。电商平台常见的下单场景:一般商品表(goods)有基本的四个字段,id(主键),goods_name (商品名),goods_status是商品状态(下架还是在售),goods_stock(库存)。用户在购买商品id为1的商品,虽然一般展示层会筛选出在售状态的商品,在严谨的流程中我们还需要判断...
2018-04-28 22:37:00
243
转载 乐观锁和悲观锁的区别
乐观锁在关系数据库管理系统里,乐观并发控制(又名”乐观锁”,Optimistic Concurrency Control,缩写”OCC”)是一种并发控制的方法。它假设多用户并发的事务在处理时不会彼此互相影响,各事务能够在不产生锁的情况下处理各自影响的那部分数据。在提交数据更新之前,每个事务会先检查在该事务读取数据后,有没有其他事务又修改了该数据。如果其他事务有更新的话,正在提交的事务会进行回滚。乐...
2018-04-28 21:35:28
138
原创 本文用Python实现了插入排序、希尔排序、冒泡排序、快速排序
1、插入排序描述插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据,算法适用于少量数据的排序,时间复杂度为O(n^2)。是稳定的排序方法。插入算法把要排序的数组分成两部分:第一部分包含了这个数组的所有元素,但将最后一个元素除外(让数组多一个空间才有插入的位置),而第二部分就只包含这一个元素(即待插入元素)。在第一部分排序完成后,再将这个最后元...
2018-04-22 22:54:22
117
原创 使用二分查找的方式查找一个数是否在列表中,存在返回True,不存在返回False
l = [1,2,3,5,9,10,20,100,500]def seek(l, tag): n = len(l) if n == 1: return False count = n // 2 if l[count] == tag: return True if l[count] > tag: return seek(l...
2018-04-22 21:33:59
2876
原创 找出一个列表中所有数字
# 找出一个列表中所有数字重新添加到一个列表中l = ['a','b',1,3,[5,'a',4,['b',7],'k',9],10,100,'m', 8.5]l1 = []def number_list(l): for i in l: if isinstance(i, list): number_list(i) if type(...
2018-04-22 21:32:56
931
原创 python IO 多路复用 select poll epoll
select select 原理select 是通过系统调用来监视着一个由多个文件描述符(file descriptor)组成的数组,当select()返回后,数组中就绪的文件描述符会被内核修改标记位(其实就是一个整数),使得进程可以获得这些文件描述符从而进行后续的读写操作。select饰通过遍历来监视整个数组的,而且每次遍历都是线性的。 select 优点select目前几乎在所有的平台上支持,...
2018-04-19 23:41:54
161
原创 MySQL数据库使用大总结
创建数据库:create database dbname;[sql] view plain copy删除数据库:drop database dbname; 创建表: 如createtable tablename(name varchar(10),hiredate date,sal decimal(10,2)); 查看表中的数据: desc tablename; 删除表:drop tabl...
2018-04-19 22:18:22
139
原创 MySQL中四种常用存储引擎的介绍
MySQL常用的四种引擎的介绍(1):MyISAM存储引擎:不支持事务、也不支持外键,优势是访问速度快,对事务完整性没有 要求或者以select,insert为主的应用基本上可以用这个引擎来创建表支持3种不同的存储格式,分别是:静态表;动态表;压缩表静态表:表中的字段都是非变长字段,这样每个记录都是固定长度的,优点存储非常迅速,容易缓存,出现故障容易恢复;缺点是占用的空间通常比动态表多(因为存储时...
2018-04-19 22:14:15
135
原创 二叉树的实现及二叉树的深度、广度遍历
# [方法一:]二叉树的实现class Node:'''定义节点类型'''def __init__(self, item):'''初始化节点类'''self.elem = itemself.lchild = Noneself.rchild = Noneclass BinTree:'''定义二叉树类'''def __init__(self, root=None):# 初始化一...
2018-04-18 00:26:04
190
原创 基于链表的实现的栈结构
'''基于链表的实现的栈结构因为链表的头部操作的时间复杂度为O(1)所以使用使用的时候都对头部进行操作'''class Node(object): def __init__(self, elem, next): self.elem = elem self.next = nextclass Stack(object): def __init__(self): self.__top = None...
2018-04-18 00:24:51
164
原创 栈的实现,通过python中的list来实现数据存储
'''栈的实现,通过python中的list来实现数据存储'''class Stack(object): def __init__(self): '''初始化一个空栈''' self._stack = [] def push(self, item): '''添加一个新元素,入栈''' self._stack.append(item) def pop(self): '''出栈操作''' ...
2018-04-18 00:23:28
221
原创 队列的实现
# 队列的实现class Queue(object): '''队列的实现,通过list存储数据''' def __init__(self): self.__queue = [] def enqueue(self, item): '''入队操作''' self.__queue.append(item) def dequeue(self): '''出队操作''' return self._...
2018-04-18 00:21:46
117
原创 双端队列的实现
# 双端队列的实现class Dqueue(object): '''双端队列''' def __init__(self): self.__queue = [] def add_head(self, item): '''入队操作, 头部添加''' self.__queue.insert(0, item) def add_end(self, item): '''入队操作, 队尾添加''' r...
2018-04-18 00:07:20
487
原创 本文用Python实现了插入排序、希尔排序、冒泡排序、快速排序
1、插入排序描述插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据,算法适用于少量数据的排序,时间复杂度为O(n^2)。是稳定的排序方法。插入算法把要排序的数组分成两部分:第一部分包含了这个数组的所有元素,但将最后一个元素除外(让数组多一个空间才有插入的位置),而第二部分就只包含这一个元素(即待插入元素)。在第一部分排序完成后,再将这个最后元素插入到...
2018-04-17 23:20:29
132
原创 列表子数组和最大
# 用暴力方法arr = [1,2,3,4,5]def max_child(arr): max = 0 x = 0 y = 0 n = len(arr) for i in range(n): for j in range(i, n): arr_sum = 0 for k in range(i, j+1): arr_sum = arr_sum + arr[k] if arr_su...
2018-04-16 21:52:13
199
原创 列表套列表求和
# 解题思路:用递归的方式去判断(注意global的使用)l = [1,2,3,[4,5,6,[7,8,9]]]count = 0def list_sum(l): global count for i in l: if isinstance(i, list): list_sum(i) else: count += i return count...
2018-04-16 16:40:16
734
原创 找出列表平衡点
# 解题思路 :1. 平衡点就是指 这个数的左边和与右边和相等 l = [2,3,4,5,8,5,9] 这个列表的平衡点就是 [8]l1 = []def balance_list(l): for i in range(len(l)): if sum(l[:i]) == (sum(l) - l[i]) // 2: l1.append(l[i]) ...
2018-04-16 16:34:35
602
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人